BIND 10 #2203: separate CC Session from auth DataSourceConfigurator

BIND 10 Development do-not-reply at isc.org
Fri Oct 5 17:15:01 UTC 2012


#2203: separate CC Session from auth DataSourceConfigurator
-------------------------------------+-------------------------------------
                   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:  5
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  background zone loading            |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Thanks for the review.

 Replying to [comment:11 jelte]:
 > In general the changes look OK, and I'm fine with both the piggy-back
 change and the boost::function addition.

 Okay, good.

 > A problem though (kind of unrelated to this ticket itself, as it looks
 like this was already there); the rollback code upon '...' exception
 (datasrc_configurator.h:95) should not rethrow; as per current
 specification of addRemoteConfig the handler should never throw (the
 exception will fall through and auth will abort).
 >
 > Either we need to add another catch-all (+log error) in the code that
 calls the handler, or we need to log here, roll back, and not re-throw.
 The original reasoning of not catching in the caller of the handler was
 that that caller has, apart from logging an error, no real way of
 recovering from whatever caused this exception (and hence the handler
 should already be handling recovery and hence the exception should not
 even escape). We can discuss this, and we can defer it to another ticket,
 but we should certainly address it (as right now rolling back at this
 point is quite useless).

 We certainly need to discuss the topic of error handling (and
 recovery) in configuration, both for the "local" and remote cases.
 For example, as we discussed before, currently different modules can
 easily have inconsistent configuration when they share a single
 configuration.

 But, for this specific code I think we can defer this discussion.  In
 #2211 the remote config handler will be a simple message forwarder to
 the separate "configurator thread", so configureDataSourceGeneric()
 won't even be a part of the handler.  We'll probably still need to
 think about how to deal with exceptions from the data source level in
 terms of maintaining the thread with the possibility of seeing
 exceptions, but that will also be a topic of later tasks (probably
 #2210 and #2212).  For now, I'll just add a note in #2211 that the new
 handler should be exception free per API contract.

 Now, assuming it's okay not to touch this point, I made one final set
 of changes as mentioned in the previous comment: rename
 "datasrc_configurator" to "datasrc_config".  It should be trivial,
 but could you make sanity checks?

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


More information about the bind10-tickets mailing list