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