Summary: | SIGCHLD dropped if generated while blocked in sigfastblock | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | corydoras | ||||
Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Many People | CC: | asomers, cem, corydoras, emaste, kib | ||||
Priority: | --- | ||||||
Version: | CURRENT | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
corydoras
2020-05-11 19:56:54 UTC
A commit references this bug: Author: kib Date: Mon May 11 22:38:32 UTC 2020 New revision: 360940 URL: https://svnweb.freebsd.org/changeset/base/360940 Log: sigfastblock: fix delivery of the pending signals in single-threaded processes. If single-threaded process receives a signal during critical section established by sigfastblock(2) word, unblock did not caused signal delivery because sigfastblock(SIGFASTBLOCK_UNBLOCK) failed to request ast handling of the pending signals. Set TDF_ASTPENDING | TDF_NEEDSIGCHK on unblock or when kernel forces end of sigfastblock critical section, to cause syscall exit to recheck and deliver any signal pending. Reported by: corydoras@ridiculousfish.com PR: 246385 Sponsored by: The FreeBSD Foundation Changes: head/sys/kern/kern_sig.c Wow, fast work Kib! Does this change need to be MFCed? I don't believe fastblock is in any stable/. A commit references this bug: Author: pho Date: Wed May 13 06:41:42 UTC 2020 New revision: 361003 URL: https://svnweb.freebsd.org/changeset/base/361003 Log: Added a regression test. PR: 246385 Changes: user/pho/stress2/misc/sigfastblock2.sh |