BIND 10 #642: SIGHUP and other signals cause boss to leave BIND 10 processes lying around

BIND 10 Development do-not-reply at isc.org
Wed Apr 20 14:03:28 UTC 2011


#642: SIGHUP and other signals cause boss to leave BIND 10 processes lying around
-------------------------------------+-------------------------------------
                   Reporter:  shane  |                 Owner:  shane
                       Type:         |                Status:  reviewing
  defect                             |             Milestone:
                   Priority:  minor  |  Sprint-20110503
                  Component:  Boss   |            Resolution:
  of BIND                            |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  Low    |  Estimated Difficulty:  0.0
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => shane


Comment:

 Good morning

 Still, this doesn't work like it should. If I run it as {{{ ./sbin/bind10
 -v & }}} and close the terminal, it starts dying out as before. If I
 redirect the stderr (but not stdout), it shutdowns properly, with this at
 the end of the shutdown:

 {{{
 [b10-msgq] Closing socket fd 9
 [b10-msgq] Receive error: EOF
 Traceback (most recent call last):
   File "./sbin/bind10", line 1042, in main_loop
     next_rstart = boss_of_bind.restart_processes()
   File "./sbin/bind10", line 818, in restart_processes
     proc_info.name)
 IOError: [Errno 5] Input/output error
 [bind10] Exception in main loop: [Errno 5] Input/output errorException
 IOError: (5, 'Input/output error') in <_io.TextIOWrapper name='<stdout>'
 encoding='UTF-8'> ignored
 }}}

 So, maybe the boss dies by some automatic stacktrace printing?

 Anyway, the new code solves part of the porblem I guess. But it is little
 bit repetetive. Wouldn't it be better to have a method like:

 {{{#!python
 def safe_write(self, what):
         try:
                 sys.stdout.write(what)
         except:
                 self.runnable = False
 }}}

 And use that?

 With regards

-- 
Ticket URL: <http://bind10.isc.org/ticket/642#comment:13>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list