opr: Avoid sigwait on SIGWAITING 05/14705/2
authorAndrew Deason <adeason@sinenomine.net>
Mon, 19 Jul 2021 04:05:38 +0000 (23:05 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 20 Jul 2021 01:37:32 +0000 (21:37 -0400)
commitc2db41258370159c1257ee79df10afa4a2a2d9e8
tree918071c8764633f156f0de1999fec9085e909fef
parentee8be26e581b0dcb102a2833e21be2c46169cde1
opr: Avoid sigwait on SIGWAITING

On AIX, calling sigwait() on a sigset containing SIGWAITING (or
SIGKILL or SIGSTOP), causes sigwait to return with an EINVAL error.
Currently, signalHandler() calls sigwait() with SIGWAITING, because
SIGWAITING is in the sigset returned by softsigSignalSet(). And so,
sigwait() returns EINVAL, and our opr_Verify in signalHandler() fails,
causing a crash.

To avoid this, remove SIGWAITING from the sigset in
softsigSignalSet(). This is AIX-specific, since the SIGWAITING signal
is AIX-specific.

Change-Id: I42539d859212605e6b1aaeb6a5eecb0ad034cea5
Reviewed-on: https://gerrit.openafs.org/14705
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/opr/softsig.c