BIND 10 #1858: sockcreator doesn't die
BIND 10 Development
do-not-reply at isc.org
Thu Oct 11 23:09:56 UTC 2012
#1858: sockcreator doesn't die
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: accepted
Type: | Milestone:
defect | Sprint-20121023
Priority: | Resolution:
medium | Sensitive: 0
Component: Boss | Sub-Project: Core
of BIND | Estimated Difficulty: 4
Keywords: | Total Hours: 0
Defect Severity: N/A |
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
trac1858 is ready for review.
While there are some derivative discussions in the ticket comments so
far, I focused on two major issues:
- the socket creator doesn't die even after the bind10 process
terminates. On looking into it, I found the cause of this:
Python3.1 (or older) doesn't close other FDs than stdin/out/err in a
child process created via `Popen`. The opened FD prevents the
socket creator from getting EOF from the channel with the bind10
process.
- the boss keep trying to kill the process even after EPERM. It
simply doesn't make sense because it will never magically succeed.
Combining these, it at least solves my problem: the bind10 process
exits, just ignoring the socket creator; and then the socket creator
exits correctly.
Proposed changelog entry:
{{{
494.? [bug] jinmei
Fixed a problem that shutting down BIND 10 kept some of the
processes alive. It was two-fold: when the main bind10 process
started as a root, started b10-sockcreator with the privilege, and
then dropped the privilege, the bind10 process cannot kill the
sockcreator via signal any more (when it has to), but it kept
sending the signal and didn't stop. Also, when running on Python
3.1 (or older), the sockcreator had some additional file
descriptor open, which prevented it from exiting even after the
bind10 process terminated. Now the bind10 process simply gives up
killing a subprocess if it fails due to lack of permission, and it
makes sure the socket creator is spawned without any unnecessary
FDs open.
(Trac #1858, git TBD)
}}}
--
Ticket URL: <http://bind10.isc.org/ticket/1858#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list