BIND 10 #2617: MSGQ_RECV_ERR errors on clean shutdown

BIND 10 Development do-not-reply at isc.org
Thu Jan 31 15:36:51 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

 I have few small notes. First of, is `ECONNRESET` really harmless? It
 means the other side was either Windows (which couldn't have happened with
 a local-domain socket) or the other side died in a painful death without
 closing the socket. It also means they could miss reading all data in the
 socket. So, I'm not sure it should be handled the same as ordinary EOF.

 Why if the socket is writable it is not readable? Couldn't it be written
 and read both at the same time?

 This exception:
 {{{#!python
 class MsgQCloseOnReceive(Exception):
     '''Exception raised when reading data from a socket results in
 "shutdown.

     This can be either getting 0-length data or via ECONNRESET
 socket.error
     exception.  This class holds whether it happens in the middle of
 reading
     (i.e. after reading some) via partial_read parameter, which is set to
 True
     if and only if so.  This will be used by an upper layer cathing the
     exception to distinguish severity of the event.

     "'''
     def __init__(self, reason, partial_read):
         self.partial_read = partial_read
         self.__reason = reason
     def __str__(self):
         return self.__reason
 }}}

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

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


More information about the bind10-tickets mailing list