BIND 10 #2204: revise auth DataSourceConfiguratorGeneric::reconfigure()

BIND 10 Development do-not-reply at isc.org
Tue Oct 9 09:40:42 UTC 2012


#2204: revise auth DataSourceConfiguratorGeneric::reconfigure()
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20121009
  medium                             |            Resolution:
                  Component:         |             Sensitive:  0
  b10-auth                           |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  6
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  background zone loading            |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => jinmei


Comment:

 Hello

 Replying to [comment:11 jinmei]:
 > Yeah, I was actually aware of that, and I admit I should mention it.
 > At least for our middle term goals (like for the next beta release) I
 > don't see any benefit to keep complicated interface with possible
 > future extensions.  But if you want to leave some consideration notes
 > on this point, I suggest adding the following to the detailed
 > description for configureDataSourceGeneric():
 >
 > {{{#!cpp
 > /// \note In future we may want to make the reconfiguration more
 efficient
 > /// by only creating newly configured data and just moving the rest from
 > /// the running configuration if they are used in the new configuration
 > /// without any parameter change.  We could probably do it by passing
 > /// the old lists in addition to the new config, but further details are
 > /// still to be defined yet.  It will surely require changes in the
 > /// data source library, too.  So, right now, we don't introduce the
 > /// possibility in the function interface.  If and when we decide to
 introduce
 > /// the optimization, we'll extend the interface.
 > }}}

 OK, let's add the note and leave it this way. Though I had a reasonably
 easy
 approach to do the reuse.

 > > Also, I thought that when there's an update of configuration and the
 top-level
 > > item is unchanged, it is not contained in the update. That is, if we
 added
 > > another item into data_sources besides classes and the new one got
 changed, we
 > > would get an update not containing any classes element. This seems not
 to be
 > > taken into account in the handler in main.cc.
 > >
 >
 > Sorry, I don't understand this.  Could you some specific example?

 OK, let's say we have the data_sources configuration, but because of some
 discussion, besides of classes, we add another item called „zones“:
 {{{
 "data_sources": {
         "classes": {
                 "IN": { something },
                 "CH": { something else }
         },
         "zones": {
                 whatever
         }
 }
 }}}

 Now we do this in bindctl:
 {{{
 config set data_sources/zones "some other thing"
 config commit
 }}}

 The data_sources/classes didn't change. And the config manager AFAIK sends
 only
 something like partial diffs, only the items that were changed ‒ so the
 update
 contains "zones" but does not contain "classes".

 So, the update that does not contain the "classes" item should be ignored.
 In
 the current state, it would either erase all the data sources or crash (I
 didn't really look closely which would happen), which is both bad.

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


More information about the bind10-tickets mailing list