bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17561: Emacs can forget processes


From: Paul Eggert
Subject: bug#17561: Emacs can forget processes
Date: Thu, 29 May 2014 08:09:19 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Jorgen Schaefer wrote:

I can not currently build the emacs-24 branch (and haven't found a
commit in it that I can on a quick try), see bug#17629.

That's an indication of a reasonably-serious problem with Emacs and your platform, which is worrisome and should get fixed. I've responded at Bug#17629.

Using trunk (git 40f5ec0 * alloc.c (Fgarbage_collect): Fix compilation
with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.) now, built with your
patch and this command:

$ ./autogen.sh && ./configure --without-x && make clean && make

When restarting Emacs, I had the bug happen again right away. Sadly
without a running strace.

If the bug is easily reproducible, that's progress. The patch does fix a bug (even if it's not your bug), so I've pushed it into the trunk. Can you get an strace -f of when Emacs stops getting SIGCHLD? That's the crucial part. That is, early on in all the straces I've seen, child processes die, Emacs gets a SIGCHLD, and then it calls waitpid (wait4) to reap them. At some point this stops working, and Emacs no longer gets a SIGCHLD when a child terminates. We need to find out what this point is, and what's causing it.

13:28:46 kill(4294962889, SIGKILL)      = 0 <0.002883>
13:28:46 --- SIGIO (I/O possible) @ 0 (0) ---
13:28:46 rt_sigreturn(0x1d)             = 0 <0.000021>
13:28:46 rt_sigprocmask(SIG_SETMASK, [QUIT ALRM CHLD PROF], NULL, 8) = 0 
<0.000016>
13:28:46 ioctl(3, FIONREAD, [0])        = 0 <0.000018>
13:28:46 rt_sigprocmask(SIG_BLOCK, [CHLD], [QUIT ALRM CHLD PROF], 8) = 0 
<0.000017>
13:28:46 kill(4294962889, SIGHUP)       = 0 <0.000017>

I'm surprised by the above trace. The first kill(-4407,SIGKILL) succeeds, indicating that Emacs still has a subprocess. But Emacs doesn't get a SIGCHLD, even after it unblocks SIGCHLD. It would be helpful to see an 'strace -f' to see what's going on in the children here.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]