On 15.05.2020 00:43, Taylor R Campbell wrote: >> Date: Thu, 14 May 2020 23:36:28 +0200 >> From: Kamil Rytarowski <n54%gmx.com@localhost> >> >> If a signal would not reach the child process (as it is ignored or >> masked+SA_IGNOREd) and it is not a crash signal, it is dropped. As I >> checked, it's the design in UNIX to overlook SIGCHLD signals in UNIX. >> Race free signals could be maybe possible, but with some design rethinking. > > I don't understand -- are you saying that if I mask SIGCHLD, e.g. with > sigprocmask(SIG_BLOCK), then because sigprop[SIGCHLD] has SA_IGNORE > set, any SIGCHLD signals will be discarded while I have it masked? > That's it. But it will be discarded only when there is no SIGCHLD signal handler installed. That's the case in the test. A debugger catches regular signals only (except crash related ones) when they reach the debuggee, > This can't be right, so either I misunderstood what you're saying, or > something else is afoot with the test that is making it flaky, or > there's a bug in the kernel. > It's a design. If we install a signal handler for SIGCHLD in the traced the test is very stable and we note SIGCHLD always, so there is no bug.
Attachment:
signature.asc
Description: OpenPGP digital signature