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