Re: Odd hang in python waiting for child; strace wakes hung process?
On Mar 23 19:21, Brian Inglis wrote: > On 2018-03-22 10:59, Corinna Vinschen wrote: > > On Mar 21 23:41, Brian Inglis wrote: > >> On 2018-03-21 16:07, Dan Kegel wrote: > >>> On Wed, Mar 21, 2018 at 11:54 AM, Achim Gratz wrote: > Well, with the sporadic hanging/defunct processes at work my routine is > to send CONT to all Cygwin processes, then HUP/KILL to anything that's > still not live or gone and then another round of CONT. This works > _most_ of the time, anything more stubborn I /bin/kill -f usually. > >>> > >>> Since I wrote, both bots hung again. This time I verified: > >>> 0) both had the defunct git process as expected > >>> 1) kill -CONT the-pid doesn't do anything, nor does kill -9. It's truly > >>> wedged. > >>> 2) the process stays in its spin hang until you ^C strace -p the-pid > >>> 3) ^C-ing the strace causes the process to terminate (strace alone > >>> doesn't) > >>> 4) taskkill /pid the-task /f also kills the process successfully. > >>> > >>> So I could write a script that watched for defunct git processes > >>> and taskkilled their parent. Build jobs would fail, but at least > >>> the bot would stay up. Of course it would be much nicer if > >>> the cygwin python process didn't get wedged. > >>> > >>> Alternately, I suppose I could try running native python... > >>> or cygwin's python3... but dangit, kill -9 should work. > >> > >> Seems to be looping on access failure to a Windows mailslot; not sure what > >> this > >> feature is normally used for: dmesg/syslog messages/AF_UNIX sockets? > > > > /dev/kmsg is implemented using a mailslot under the hood. This > > feature is only used to log exceptions and for nothing else since > > nobody ever found another reason to use it for. > > > > It would be interesting to learn if the perl hangs have the same reason. > > > > I guess we can simply remove /dev/kmsg support completely and drop > > the mailslot code. I'm pretty sure nobody would miss it. Hardly > > anybody knows it exists... > > Is /dev/log implemented the same way? No. /dev/log is a AF_UNIX socket. > Looks like syslog-ng stopped working around the last upgrade: > > $ cat /var/log/syslog-ng.log > Error reading serialized data; error='Error reading file (short read)' > Persistent configuration file is in invalid format, ignoring; > Error binding socket; addr='AF_UNIX(/dev/log)', error='Address already in use > (112)' rm -rf /dev/log Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat signature.asc Description: PGP signature
Re: Odd hang in python waiting for child; strace wakes hung process?
On 2018-03-25 04:24, Corinna Vinschen wrote: > On Mar 23 19:21, Brian Inglis wrote: >> On 2018-03-22 10:59, Corinna Vinschen wrote: >>> On Mar 21 23:41, Brian Inglis wrote: On 2018-03-21 16:07, Dan Kegel wrote: > On Wed, Mar 21, 2018 at 11:54 AM, Achim Gratz wrote: >> Well, with the sporadic hanging/defunct processes at work my routine is >> to send CONT to all Cygwin processes, then HUP/KILL to anything that's >> still not live or gone and then another round of CONT. This works >> _most_ of the time, anything more stubborn I /bin/kill -f usually. > > Since I wrote, both bots hung again. This time I verified: > 0) both had the defunct git process as expected > 1) kill -CONT the-pid doesn't do anything, nor does kill -9. It's truly > wedged. > 2) the process stays in its spin hang until you ^C strace -p the-pid > 3) ^C-ing the strace causes the process to terminate (strace alone > doesn't) > 4) taskkill /pid the-task /f also kills the process successfully. > > So I could write a script that watched for defunct git processes > and taskkilled their parent. Build jobs would fail, but at least > the bot would stay up. Of course it would be much nicer if > the cygwin python process didn't get wedged. > > Alternately, I suppose I could try running native python... > or cygwin's python3... but dangit, kill -9 should work. Seems to be looping on access failure to a Windows mailslot; not sure what this feature is normally used for: dmesg/syslog messages/AF_UNIX sockets? >>> >>> /dev/kmsg is implemented using a mailslot under the hood. This >>> feature is only used to log exceptions and for nothing else since >>> nobody ever found another reason to use it for. >>> >>> It would be interesting to learn if the perl hangs have the same reason. >>> >>> I guess we can simply remove /dev/kmsg support completely and drop >>> the mailslot code. I'm pretty sure nobody would miss it. Hardly >>> anybody knows it exists... >> >> Is /dev/log implemented the same way? > > No. /dev/log is a AF_UNIX socket. > >> Looks like syslog-ng stopped working around the last upgrade: >> >> $ cat /var/log/syslog-ng.log >> Error reading serialized data; error='Error reading file (short read)' >> Persistent configuration file is in invalid format, ignoring; >> Error binding socket; addr='AF_UNIX(/dev/log)', error='Address already in >> use (112)' > > rm -rf /dev/log $ ll /dev/log && /bin/rm -f /dev/log && ll /dev/log -rw-rw-rw- 1 SYSTEM SYSTEM 54 Nov 24 20:59 /dev/log ls: cannot access '/dev/log': No such file or directory [start services] $ cyg-srv-status.sh cron Running cygserver Running sendmail Running sshd Running syslog-ng Running Thank you very much! -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
[ANNOUNCEMENT] Updated: perl-Text-CSV_XS-1.35-1
The following package has been updated in the Cygwin distribution: * perl-Text-CSV_XS-1.35-1 Text::CSV_XS provides facilities for the composition and decomposition of comma-separated values. An instance of the Text::CSV_XS class will combine fields into a CSV string and parse a CSV string into fields. This is an update to the latest upstream release. Dave -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple