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