syslog(), routines used in write_warmstart(), and exit(3) are all signal-unsafe. Disable the former two (which are already off by default after r317168) and convert the latter to an _exit(2) to make rpcbind exit safely on signal delivery.
Details
Details
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
The _exit() bit looks right to me.
Note that warmstart has always been off by default (not just as of r317168), and this change effectively renders the feature useless, so if you're going to touch it you might as well just delete it entirely (or fix it :)).
Comment Actions
This change makes the WARMSTART option non-functional.
Proper fix would be to set a flag in the signal handler and check for it in my_svc_run() loop, doing the dump of the rpc registrations in the context of the main loop.
Comment Actions
That's fine, if that's the only place we care about detecting exiting on such signal.