-
Notifications
You must be signed in to change notification settings - Fork 485
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
pacman: sometimes hangs validating GPG signatures #2752
Comments
In case the job logs expire, they look something like:
|
Looks like another one, this time in MINGW-packages CI: https://github.com/msys2/MINGW-packages/runs/4586853393?check_suite_focus=true
|
Repro idea: run |
It looks like
? |
I've started this up on my local Win10 21H2 machine, it is validating 356 packages per invocation. |
It's hung up this morning, but not like I used to see it on ARM. There's one pacman.exe process, which is using CPU, and gpg.exe is running.
|
pacman stack traces
I took a Windows dump of pacman and gpg, and also used dumper.exe from msys2 to take dumps, but gdb doesn't seem to want to use the core file fron dumper: |
This is interesting. It seems that https://github.com/msys2/msys2-runtime/blob/2480c0e3242665890e1dac01891c5a7834fdd138/winsup/cygwin/fhandler_pipe.cc#L1281 is resulting in an exception. The only thing I can think of at this point is that somehow |
Wish I could open that core I took with |
Attempt to avoid an exception I caught once in gdb, trying to debug msys2/MSYS2-packages#2752
My machine is still running like 15 hours in the loop validating 356 packages per invocation, so I haven't verified in the debugger what |
So far so good on ARM. Sent patch to cygwin-patches: https://cygwin.com/pipermail/cygwin-patches/2021q4/011611.html |
Patch seems to have done a world of good on ARM, have been building packages for hours and haven't had to manually intervene and kill anything yet! |
https://github.com/msys2/msys2-autobuild/runs/4624180675?check_suite_focus=true seems to have been one validating the sync dbs. |
Can I get some help with the requests from https://cygwin.com/pipermail/cygwin-patches/2021q4/011616.html:
Would I need to set some special configure args to get an assertion to do anything?
What would be the best way to do this? Would I need to add a patch to msys2-runtime repo, and update msys2-runtime package, to get runners to exercise this? /cc @dscho for msys2-runtime expertise |
I got the assertion in
|
I set up a windows server 2022 VM last night and went nuts stressing
So it is not something inherent in the x86_64-on-ARM64 emulation but can happen on native x86_64 also. |
I think the current state of this is https://cygwin.com/pipermail/cygwin-patches/2021q4/011637.html: namely, waiting on somebody to sign off on the patch. |
The hang that I could reproduce on x64 is now fixed (pending upload to repo). There is still a hang that I've only seen on ARM64, when validating sync dbs, that I have had no luck debugging with windbgx, gdb, or lldb. None of them can get a valid thread context or stack trace for the main thread. Maybe that's part of whatever the problem is. |
I first saw this on Windows on ARM, but it seems to have shown up on msys2-autobuild recently too (https://github.com/msys2/msys2-autobuild/runs/4552699834?check_suite_focus=true and https://github.com/msys2/msys2-autobuild/runs/4575182521?check_suite_focus=true).
What I saw on ARM was that
pstree
showed two pacman processes, one a child of the other. If I killed the child, via its winpid and taskkill, pacman would complain about a GPGME error and things would move on (with a failed invocation of pacman). If I killed the parent, the child would still hang around as an apparent zombie.I tried to debug it once a while back, but I seem to recall that attempting to attach a debugger to it caused it to 'unblock' and exit, which made trying to figure out what was going on pretty difficult.
The text was updated successfully, but these errors were encountered: