BIND 10 #2562: CC_TIMEOUT with no zonemgr when handling NOTIFY

BIND 10 Development do-not-reply at isc.org
Fri Dec 14 17:18:04 UTC 2012


#2562: CC_TIMEOUT with no zonemgr when handling NOTIFY
----------------------------------------+----------------------------------
                   Reporter:  jreed     |                 Owner:
                       Type:  defect    |                Status:  new
                   Priority:  medium    |             Milestone:  New Tasks
                  Component:  b10-auth  |              Keywords:
               CVSS Scoring:            |             Sensitive:  0
            Defect Severity:  N/A       |           Sub-Project:  DNS
Feature Depending on Ticket:            |  Estimated Difficulty:  0
        Add Hours to Ticket:  0         |           Total Hours:  0
                  Internal?:  0         |
----------------------------------------+----------------------------------
 Also see #1847 for related information.

 If zonemgr is not running (on purpose) but a NOTIFY is received:

 {{{
 2012-12-14 11:00:23.697 DEBUG [b10-auth.auth/2429] AUTH_RECEIVED_NOTIFY
 received incoming NOTIFY for zone name foo., zone class IN
 2012-12-14 11:00:23.697 DEBUG [b10-auth.cc/2429] CC_GROUP_SEND sending
 message '{ command": [ "notify", { "master": "127.0.0.1", "zone_class":
 "IN", "zone_name": foo." } ] }' to group 'Zonemgr'
 2012-12-14 11:00:23.698 DEBUG [b10-auth.cc/2429] CC_GROUP_RECEIVE trying
 to receive a message
 2012-12-14 11:00:27.705 ERROR [b10-auth.cc/2429] CC_TIMEOUT timeout
 reading data from command channel
 2012-12-14 11:00:27.705 ERROR [b10-auth.auth/2429] AUTH_ZONEMGR_COMMS
 error communicating with zone manager: Timeout while reading data from cc
 session
 }}}

 In November on jabber, jinmei suggested:

 {{{
 (08:16:31 PM) jinmei: again, we could do the same for ddns
 (08:16:50 PM) jinmei: simply return NOTIMP if the corresonding component
 isn't running
 (08:17:01 PM) jinmei:         } else if (opcode == Opcode::UPDATE()) {
             if (impl_->ddns_forwarder_) {
                 send_answer = impl_->processUpdate(io_message);
             } else {
                 makeErrorMessage(impl_->renderer_, message, buffer,
                                  Rcode::NOTIMP(), tsig_context);
             }
 }}}

 The BIND 9 way is to return a NOTIFY answer and log about it. BIND 9 will
 log "not authoritative" if not authoritative.  For BIND 10 we don't know
 if the component is not loaded -- unless we use a loadable configuration
 module to store this information (like tsig).

 I think NOTIMP is fine for now.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2562>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list