BIND 10 #2934: xfrout session can be broken due to EAGAIN

BIND 10 Development do-not-reply at isc.org
Fri May 17 07:19:15 UTC 2013


#2934: xfrout session can be broken due to EAGAIN
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  defect        |  jinmei
            Priority:  medium        |                       Status:
           Component:  xfrout        |  accepted
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130528
         Sub-Project:  DNS           |                   Resolution:
Estimated Difficulty:  2             |                 CVSS Scoring:
         Total Hours:  0             |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by jinmei):

 trac2943 is ready for review.

 The first commit is the actual fix and unit tests.  For the purpose
 of the test I changed the place of making it nonblocking, but it's
 essentially the same as the originally proposed patch.

 I believe non-blocking I/O with asynchronous API (such as select) is a
 better choice, but xfrout is already so broken in many ways, and with
 the expected plan of rewrite I didn't go that far.

 The second commit is not directly related, but fixes a small oddity
 I found while I tried to provide a system test of this problem.
 The change is small so I think it's okay to include it.

 The third commit is the largest one: lettuce tests of xfrout including
 the scenario of this bug.  I needed to provide some supplemental tools
 such as a loadzone terrain and a custom axfr client (emulating slower
 receiver), so this part of the diff is actually the largest.  But
 these should be basically straightforward, and I believe these tools
 are useful for other test cases, so worth adding at this point.

 Proposed changelog:
 {{{
 615.    [bug]           jinmei
         b10-xfrout now uses blocking send for xfr response messages
         to prevent abrupt termination of the stream due to a slower
         client or narrower network bandwidth.
         (Trac #2934, git TBD)
 }}}

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


More information about the bind10-tickets mailing list