Print this page
OS-5370 panic in signalfd (fix mancheck)
OS-5370 panic in signalfd
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 6,18 **** .\" .\" A full copy of the text of the CDDL should have accompanied this .\" source. A copy of the CDDL is also available via the Internet at .\" http://www.illumos.org/license/CDDL. .\" ! .\" Copyright 2015, Joyent, Inc. .\" ! .Dd "April 9, 2016" .Dt SIGNALFD 3C .Os .Sh NAME .Nm signalfd .Nd create or modify a file descriptor for signal handling --- 6,18 ---- .\" .\" A full copy of the text of the CDDL should have accompanied this .\" source. A copy of the CDDL is also available via the Internet at .\" http://www.illumos.org/license/CDDL. .\" ! .\" Copyright 2016, Joyent, Inc. .\" ! .Dd "May 05, 2016" .Dt SIGNALFD 3C .Os .Sh NAME .Nm signalfd .Nd create or modify a file descriptor for signal handling
*** 148,157 **** --- 148,171 ---- uint64_t ssi_stime; /* system CPU time consumed (SIGCHLD) */ uint64_t ssi_addr; /* address that generated signal */ uint8_t ssi_pad[48]; /* pad size to 128 bytes */ } signalfd_siginfo_t; .Ed + .Sh NOTES + File descriptor duplication during fork presents a challenge to the + .Sy signalfd + facility since signal data and events are dependent on the process from which + they are queried. Its use with caching event systems such as + .Xr epoll 5 , + .Sy /dev/poll , + or + .Xr port_create 3C + can result in undefined behavior if signalfd and polling descriptors are used + together after being shared across a fork. Such restrictions do not apply if + the child only calls + .Xr close 2 + on the descriptors. .Sh RETURN VALUES Upon successful completion, a file descriptor associated with the instance is returned. Otherwise, -1 is returned and errno is set to indicate the error. When .Va fd
*** 185,192 **** Unable to allocate state for the file descriptor. .El .Sh SEE ALSO .Xr poll 2 , .Xr sigwait 2 , .Xr sigsetops 3C , .Xr sigwaitinfo 3C , ! .Xr signal.h 3HEAD --- 199,208 ---- Unable to allocate state for the file descriptor. .El .Sh SEE ALSO .Xr poll 2 , .Xr sigwait 2 , + .Xr port_create 3C , .Xr sigsetops 3C , .Xr sigwaitinfo 3C , ! .Xr signal.h 3HEAD , ! .Xr epoll 5