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>

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man3c/signalfd.3c.man.txt
          +++ new/usr/src/man/man3c/signalfd.3c.man.txt
↓ open down ↓ 76 lines elided ↑ open up ↑
  77   77               uint32_t ssi_trapno;    /* trap number that caused signal */
  78   78               int32_t  ssi_status;    /* exit status or signal (SIGCHLD) */
  79   79               int32_t  ssi_int;       /* unused */
  80   80               uint64_t ssi_ptr;       /* unused */
  81   81               uint64_t ssi_utime;     /* user CPU time consumed (SIGCHLD) */
  82   82               uint64_t ssi_stime;     /* system CPU time consumed (SIGCHLD) */
  83   83               uint64_t ssi_addr;      /* address that generated signal */
  84   84               uint8_t  ssi_pad[48];   /* pad size to 128 bytes */
  85   85       } signalfd_siginfo_t;
  86   86  
       87 +NOTES
       88 +     File descriptor duplication during fork presents a challenge to the
       89 +     signalfd facility since signal data and events are dependent on the
       90 +     process from which they are queried.  Its use with caching event systems
       91 +     such as epoll(5), /dev/poll, or port_create(3C) can result in undefined
       92 +     behavior if signalfd and polling descriptors are used together after
       93 +     being shared across a fork.  Such restrictions do not apply if the child
       94 +     only calls close(2) on the descriptors.
       95 +
  87   96  RETURN VALUES
  88   97       Upon successful completion, a file descriptor associated with the
  89   98       instance is returned. Otherwise, -1 is returned and errno is set to
  90   99       indicate the error.  When fd is not -1 and there is no error, the value
  91  100       of fd is returned.
  92  101  
  93  102  ERRORS
  94  103       The signalfd(function) will fail if:
  95  104  
  96  105       EBADF              The fd descriptor is invalid.
↓ open down ↓ 2 lines elided ↑ open up ↑
  99  108  
 100  109       EINVAL             The fd descriptor is not a signalfd descriptor or the
 101  110                          flags are invalid.
 102  111  
 103  112       EMFILE             There are currently OPEN_MAX file descriptors open in
 104  113                          the calling process.
 105  114  
 106  115       ENODEV             Unable to allocate state for the file descriptor.
 107  116  
 108  117  SEE ALSO
 109      -     poll(2), sigwait(2), sigsetops(3C), sigwaitinfo(3C), signal.h(3HEAD)
      118 +     poll(2), sigwait(2), port_create(3C), sigsetops(3C), sigwaitinfo(3C),
      119 +     signal.h(3HEAD), epoll(5)
 110  120  
 111      -illumos                          April 9, 2016                         illumos
      121 +illumos                           May 5, 2016                          illumos
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX