BIND 10 #2212: support "load zone" command in the configurator thread

BIND 10 Development do-not-reply at isc.org
Fri Oct 26 15:23:10 UTC 2012


#2212: support "load zone" command in the configurator thread
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20121106
  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      |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * owner:  jelte => jinmei


Comment:

 there is a compilation issue in getZoneWriter() (datasrc_clients_mgr.h);
 some compilers still need a return statement;

 I suggest adding something like
 {{{
     // all cases above should either return or throw, but some compilers
     // still need a return statement
     return (boost::shared_ptr<datasrc::memory::ZoneWriter>());
 }}}
 at the end of getZoneWriter()

 auth_messages.mes:

 I have several small fixes for the COMMAND_ERROR log message, I'd propose
 making it this text:
 {{{
 The separate thread for maintaining data source clients failed to complete
 a
 command given by the main thread.  In most cases this is some kind of
 configuration or temporary error such as an attempt to load a non-existent
 zone or a temporary DB connection failure.  So the event is just logged
 and
 the thread keeps running.  In some rare cases, however, this may indicate
 an
 internal bug and it may be better to restart the entire program, so the
 log
 message should be carefully examined.
 }}}

 The death tests recently got an additional check (so that valgrind doesn't
 fail on them, at least if valgrind.h is available), so any code that does
 EXPECT_DEATH should include <util/unittests/check_valgrind.h>, and  put
 {{{
     if (!isc::util::unittests::runningOnValgrind()) {
     }
 }}}
 around the EXPECT_DEATH(_IF_SUPPORTED) macros
 (as an example, see buffer_unittest.c)

 (note that we are considering removing this again and provide an
 environment option to simply skip all death tests, as this is really the
 only place valgrind can't handle, but until that is decided this is the
 best we have for valgrind not to fail on death tests)

 Oh, and FYI, maybe not entirely related to this branch (but it is about
 new code here), I plan to make a slight change in doLoadZone(); and put
 the 'default to IN if class not provided' code there, in trac2213; it is
 easier (both in code and in cycles) to do that check here, instead of in
 the code sending the thread command, as that code is dealing with a const
 element, and would need to recreate the 'entire' args variable (granted,
 it isn't that big). Other checks will go in the code i'll add in 2213, but
 it can only check, not modify data (without reconstructing 'everything').

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


More information about the bind10-tickets mailing list