BIND 10 #2252: Implement counters into Xfrin (1/3)

BIND 10 Development do-not-reply at isc.org
Wed May 1 04:08:27 UTC 2013


#2252: Implement counters into Xfrin (1/3)
-------------------------------------+-------------------------------------
            Reporter:  naokikambe    |                        Owner:
                Type:  enhancement   |  jinmei
            Priority:  medium        |                       Status:
           Component:  xfrin         |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130514
         Sub-Project:  DNS           |                   Resolution:
Estimated Difficulty:  5             |                 CVSS Scoring:
         Total Hours:  16.75         |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by jinmei):

 I'm not really sure if I understand the commit comment:
 {{{
 [2252] add exceptional cases for checking initial statistics of Xfrout

 .Xfrout.socket.unixdomain.open should be 1 immediately after Xfrout
 started.
 But Stats could not have the latest statistics of Xfrout if it requests
 until
 Xfrout is ready for accepting a statistics request from Stats.  Thus in
 that
 case, Stats would show that .Xfrout.socket.unixdomain.open is 1.  For
 checking
 exactly that .Xfrout.socket.unixdomain.open is 1 here, it waits for the
 second
 time until Stats requests all modules which are Auth, Init, and Xfrout.
 The
 Stats configuration "poll-interval" is changed to one second so that
 timeout in
 the lettuce test is avoided.
 }}}

 Does this mean that the problem is as follows?
 - if b10-stats doesn't start up soon enough and Xfrout is ready at the
   time the initial polling from b10-stats,
   .Xfrout.socket.unixdomain.open is 1, so this check will fail:
 {{{
     check initial statistics not containing example.org for Xfrout
     with cmdctl port 47804
 }}}
 - on the other hand, if b10-stats starts up sooner and collects
   initial statistics before xfrout is ready,
   .Xfrout.socket.unixdomain.open is 0.  And when we perform this
   b10-stats simply returns the remembered result (because
   poll-interval is the default):
 {{{
     check initial statistics not containing example.org for Xfrout with
 cmdctl port 47804
 }}}
   So we cannot simply assert the counter is 1 (or 0).

 And the "fix" is to set poll-interval to 1 (then in the second case
 "check initial statistics" triggers another polling and b10-stats will
 get the latest value) and assert the counter is 1?

 If so, I think the previous workaround is less ugly, which, if I
 remember it, is to assert the counter is either 0 or 1 (with
 commenting why).  To me the current fix has the following issues:
 - it's not clear why we need to use that specific value of
   poll-interval.
 - smaller poll-interval values will cause noisy log output.  it's
   inconvenient when we need to examine the log output to debug a test
   failure.

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


More information about the bind10-tickets mailing list