On Thu, 29 May 2014 19:55:20 +0200 Andreas Schwab wrote: > Jorgen Schaefer writes: > > > It works. A bit later: > > > > rt_sigprocmask(SIG_BLOCK, [CHLD], [QUIT ALRM PROF], 8) = 0 > > rt_sigprocmask(SIG_SETMASK, [QUIT ALRM PROF], NULL, 8) = 0 > > > > That's fine, CHLD is not masked. A while later, then, this: > > > > --- SIGIO (I/O possible) @ 0 (0) --- > > rt_sigreturn(0x1d) = 11684722 > > ioctl(3, FIONREAD, [0]) = 0 > > rt_sigprocmask(SIG_BLOCK, [CHLD], [QUIT ALRM CHLD PROF], 8) = 0 > > So the damage happend somewhere between these blocks. Please try this > patch to better see when CHLD became blocked: See the attached trace. I spared you the few megs of read/select loop this time. I don't understand it, though. Line 4685 has a SIGCHLD. The next rt_sigprocmask that mentions CHLD is in line 4726, where SIGCHLD is in the oldset. It wasn't at 4714/4715. Huh? How did it get there?