BIND 10 #2617: MSGQ_RECV_ERR errors on clean shutdown

BIND 10 Development do-not-reply at isc.org
Fri Feb 1 14:00:24 UTC 2013


#2617: MSGQ_RECV_ERR errors on clean shutdown
-------------------------------------+-------------------------------------
            Reporter:  jreed         |                        Owner:
                Type:  defect        |  jinmei
            Priority:  medium        |                       Status:
           Component:  msgq          |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130205
         Sub-Project:  Core          |                   Resolution:
Estimated Difficulty:  Discuss (4?)  |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  Low
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => jinmei


Comment:

 Hello

 Replying to [comment:16 jinmei]:
 > At this point I gave up figuring it out - I guess it's beyond the
 > scope of this ticket.  Since we (I) don't know how that happens and
 > (therefore) what kind of bad things can happen with it, it wouldn't be
 > a good idea to pretend it cannot be serious.  So I decided to err on
 > the side of caution by logging all socket.error at the error level.
 > I clarified that it's probably less harmful if it happens on shutdown
 > in the detailed version of log message, even though I know no one will
 > read it.

 My guess is the socket is opened in a daemon thread and the thread is
 terminated the hard way. The main thread exits and the daemon threads are
 just killed, so the sockets in them are just auto-closed by the OS when
 the application exists.

 > > Why if the socket is writable it is not readable? Couldn't it be
 written and read both at the same time?
 >
 > As I asked in my previous quick response, I'm not sure which part of
 > the code you're referring to.  Maybe this one?
 > {{{#!python
 >                         writable = event & select.POLLOUT
 >                         readable = not writable and (event &
 select.POLLIN)
 > }}}
 > if so, actually, I don't know:-) I wondered the same thing, but in
 > this task I chose to preserve the original code logic:
 > {{{#!python
 >                         if event & select.POLLOUT:
 >                             self.__process_write(fd)
 >                         elif event & select.POLLIN:
 >                             self.process_socket(fd)
 > }}}
 > we can probably loosen it, but I didn't want to break it accidentally
 > as it's outside the scope of this task.

 Yes, I meant this. There's a similar code in the kqueue implementation. I
 don't think there's a reason to it, maybe the original author thought the
 events are exclusive. I don't think anything would break if it was
 changed.

 > > I think the double-quotes in the docstring are somewhat confused.
 Also, I thought we usually put empty lines between method definitions.

 There's one double quote at the end of the docstring and it is unpaired:
 {{{
 "'''
 }}}

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


More information about the bind10-tickets mailing list