-
Notifications
You must be signed in to change notification settings - Fork 701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interrupting cabal-3.8.0.0.20220526 and master with ctrl+c makes it hang on windows #8208
Comments
Possibly introduced by #7921, even though it says "on unix systems". could you try building cabal with process 1.6.14 or later? |
cabal in gitlab is built with ghc-8.10.7 iirc |
I checked that pr and I did not get any hang, tests could be wrong though And a confirmation of the bug by another windows user would be great, i will try again with other projects myself |
Yes, dear Windows users, please reproduce. |
The "on unix systems" is just to say that the change isn't expected to necessarily fix things on Windows. It definitely does touch Windows too, and there's a decent chance of something like this slipping through... One factor that might come into play is that GHC has two different Windows I/O managers, which behave differently with respect to types and sub-processes, see e.g. here haskell/process#235. It might be worth checking if that is involved here. (I don't really know which GHC version uses which I/O manager by default and/or whether they're switchable...) |
in my test I used ghc-8.10.7, which did not have the new io manager |
FYI: I'm getting "waitForProcess: does not exist (No child process)" when interrupting long running We still have to decide whether to revert for 3.8, e.g., waiting until the new GHC IO fixes the problem or until somebody fixes it differently or until enough Windows users can't reproduce it and so a fluke on a single Windows system is a valid suspicion. An argument for not reverting is that we only got one report of the problem for the pre-release. However, not many Windows users are early adopters so that may be a sampling bias. |
We even are not sure what is the cause (if it is reproducible at all!). Small evidence to perform any action or delay de release imho. |
It's a bit tangential to this particular issue, but how about generally building releases with GHC 9.2? That would address those "no child process" errors for the released cabal versions at least. Regarding Windows issues in general, it'd be great if there were some easy way for non-Windows devs to get access to a Windows dev environment. Is there some organisation that could e.g. provide access to Windows VMs to contributors of core Haskell tooling? |
@hasufell: in your experience, is GHC 9.2.3 stable enough to build cabal 3.8.1 with it (that ghcup would later distribute)? I'm in favour, to avoid both of stale processes and "waitForProcess: does not exist (No child process)". I suppose changing If anybody has a clue about free Windows VMs for cabal devs, please let us know. @bgamari: do you think HF or GHC HQ may have any? |
I don't use 9.2.3 actively, so I don't know. |
But don't your users complain to you about particular GHCs and demand their money back? |
I take it as GHC 9.2.3 not being particularly maligned by the users, so let's try #8271. |
@jneira: I've compiled branch 3.8 with GHC 9.2.3. Could you try if your problem persists? https://gitlab.haskell.org/haskell/cabal/-/pipelines/54283 @robx: I'm still getting "waitForProcess: does not exist (No child process)" [edit: most of the time] with branch 3.8 cabal compiled on GHC 9.2.3 (https://gitlab.haskell.org/haskell/cabal/-/jobs/1106009) and I'm not ever getting that with cabal 3.6.2. Is that just my ancient Ubuntu acting up? Could you repeat your tests with this version? Edit: and both 3.6.2 from ghcup (which doesn't show the waitForProcess message for me) and the newly compiled cabal are said by ldd to be static exes, so probably both come from the gitlab-ci job build-x86_64-linux-alpine, so that's probably not the cause of the differences. |
I was under the mistaken impression that GHC 9.2.3 shipped with the fixed version of the process package. Unfortunately, that turns out not to be the case: It ships with process-1.6.13.2 while the fix is in process-1.6.14.0. Sorry about that :/ (though it's probably still a good change to build with GHC 9.2). |
Yes, I think so. |
It's trivial to build against a newer core library. You do not need to update GHC for that. |
well at least we have free windows machines in ci (GitHub and gitlab) |
sorry, no time to do more tracing till (maybe) the weekend 🙃 |
Happy Birthday @Mistuke! :D |
Thank you :D |
i am afraid that the bug conitnues reproducing for me at bcfc79c |
Note that I still require the scheduler trace to make progress here :)
…Sent from my Mobile
On Sun, Jan 15, 2023, 15:16 Javier Neira ***@***.***> wrote:
yeah, will check master again to confirm it has the same behaviour
i am afraid that the bug conitnues reproducing for me at bcfc79c
<bcfc79c>
—
Reply to this email directly, view it on GitHub
<#8208 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAI7OKIILVYM3AC33UEZ7OTWSQIFXANCNFSM5YPNRBMA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
This is going to be a regression in cabal 3.10 now, not on master. However, only @jneira can reproduce it so far and, unfortunately, he is too busy, so let's wait for wider feedback with 3.10. @Mistuke: thank you for spending the time and confirming it doesn't look as immediately and universally disastrous as I feared. Perhaps it's only a hang on ctrl-c after all and not a symptom of some more general and dangrous flaw. |
There's an open process bug that looks remarkably similar to this one and I
have been able to reproduce it and have a fix for it. So I'm hoping that
fixes this problem as well.
…Sent from my Mobile
On Thu, Feb 9, 2023, 17:37 Mikolaj Konarski ***@***.***> wrote:
This is going to be a regression in cabal 3.10 now, not on master.
However, only @jneira <https://github.com/jneira> can reproduce it so far
and, unfortunately, he is too busy, so lets wait for wider feedback with
3.10.
@Mistuke <https://github.com/Mistuke>: thank you for spending the time
and confirming it doesn't look as immediately and universally disastrous as
I feared. Perhaps it's only a hang on ctrl-c after all and not a symptom of
some more general and dangrous flaw.
—
Reply to this email directly, view it on GitHub
<#8208 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAI7OKOFG3S345XHJBSIOXLWWUTMXANCNFSM5YPNRBMA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
haskell/process#277 should fix this. |
Mmm, isn't it a bit premature to close it? Has anyone actually tried it on cabal? |
Github closed it because it was linked |
Hi, I have tried build cabal using process including the mentioned patch and i am afraid i continue experiencing it:
In the las line i pressed ctrl+c and the execution was blocked 😞 |
I wonder what version of |
That's weird, lets first confirm it's stuck on the same issue :). Could you upload the binary that's failing again, and could you also do a new trace with process spy as before? The new code in process shouldn't be able to deadlock unless the child process never actually exits. Second question, could you like me to the cabal code that handles ctrl+c? |
Also it would be very handy if you could replicate the issue with a standalone reproducer like the one in haskell/process#273 this would likely increase my chances of reproducing the issue as it removes some timing variability. |
I don't seem to get this behavior anymore with newer cabals. It works properly as expected. Unless a clear reproducer is provided I guess we can close this issue. |
I am experiencing some weird behaviour interrupting cabal rc execution with ctrl+c in windows:
Doing a ctrl+c in the
Configuring component for my package
, with ghc-pkg subprocesses, hangs the program with rc1I cant reproduce with 3.6.0.0
The text was updated successfully, but these errors were encountered: