BIND 10 #1210: IXFR system test specification

BIND 10 Development do-not-reply at isc.org
Mon Oct 3 19:19:58 UTC 2011


#1210: IXFR system test specification
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  stephen
  stephen                            |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20111011
  critical                           |            Resolution:
                  Component:  xfrin  |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  6
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by stephen):

 > Should I read the RFC as well just to make sure you didn't miss anything
 as well?
 Might be useful.

 > It says the class must be IN. Does it mean we can't use IXFR for
 different class?
 Good point. I've updated the requirements to remove reference to the IN
 class, but updated the test specification to indicate that the tests
 should carried out for each class.  (And noted that at present, BIND 10
 only supports class IN.)

 > Why are the version numbers by tens? Isn't it enough to just miss the
 one single number that is not present?
 More that when I started writing the tests I was unsure whether I needed
 to be able to specify multiple serial numbers between the serial numbers
 of two versions, so left a gap of 10.  Changes to be n-2, n-4, n-6.

 > You propose to use bind9 for the tests. Isn't it easier to prepare the
 packets to answer in some files and use socat for example to send/receive
 the packets?
 The reason for BIND 9 is that this implicitly checks that the format of
 the request is correct.  It also handles the generation of NOTIFY packets
 to the BIND 10 server that cause it to send the IXFR request.  Also, by
 loading different versions of a zone, it is possible to generate
 difference packets without the need to explicitly create the binary data.

 > The 4/4 says the order of changes is set. However, it also says the
 whole transaction is atomic. I think it refers to the effect on the
 resulting data in the zone. If we, for example, had a „delete this RR“ and
 then again „add this RR“, it results in a zone containing it. If it is the
 other way around, it results in a zone without. Maybe some data might test
 this?
 I noted that requirement because it is mentioned in
 [http://tools.ietf.org/html/rfc1995 RFC 1995].  However, the only
 circumstance I can see in which it makes a difference is where the update
 comprises the deletion of a RR and the addition of an identical RR.  Then
 the action depends on whether "delete this RR" means "delete all RRs in
 the zone identical to this RR".  If so, we get the effect you describe.
 If not, and "delete this RR" means "delete the first RR matching this", it
 makes no difference.

 > For 4/7, can we simulate a TCP connection that gets truncated/reset? And
 see the data from the beginning didn't get stored?
 That is a test that needs to be done.  For the moment, I've added it as a
 "TODO" as this might involve a good deal of work to capture a binary data
 stream and remove the last part of it.

 > Can we check that the IXFR is sent when the SOA times out? Or is that
 too long to test? Should we mention it?
 Good point.  We can do it, just set the SOA refresh time to a small value.
 I've added a requirement for it and a test.

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


More information about the bind10-tickets mailing list