SIGHUP leaves daemon workers behind
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
New
|
Low
|
Unassigned |
Bug Description
The auditor forks children. Some other daemon may also decide to do that some day [1]. The default behavior for SIGUP seems to be to kill the parent process - but since we only install our daemon signal handler which kills the whole progress group for SIGTERM [2] - sending SIGHUP will leave orphaned processes.
This isn't the end of the world.
1) swift-init already does the right thing for "stop" command [3]
2) auditor workers will run to completion and exit [4]
So it's only a weird gotcha when rolling your own process management (e.g. systemd unit-files) and you accidentally think SIGHUP will be ok for swift's daemons since it has a defined behavior for swift's wsgi-servers. And then you also implement a daemon who's workers will run until they receive SIGTERM.
Fix is probably just to install kill_children for SIGHUP as well.
1. https:/
2. https:/
3. https:/
4. https:/