BIND 10 jinmei-shmem, updated. e6c849a3223fbf2a657753d8491c88b85caf1ba9 [jinmei-shmem] prevent propagating SessionTimeout exception
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Oct 15 17:43:59 UTC 2012
The branch, jinmei-shmem has been updated
via e6c849a3223fbf2a657753d8491c88b85caf1ba9 (commit)
from 0549af67b4fc26a6f2b2f224fc41ebb4e218a0ab (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e6c849a3223fbf2a657753d8491c88b85caf1ba9
Author: JINMEI Tatuya <jinmei at isc.org>
Date: Mon Oct 15 10:43:32 2012 -0700
[jinmei-shmem] prevent propagating SessionTimeout exception
-----------------------------------------------------------------------
Summary of changes:
src/bin/memmgr/memmgr.cc | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/bin/memmgr/memmgr.cc b/src/bin/memmgr/memmgr.cc
index 3b48d97..0db05b1 100644
--- a/src/bin/memmgr/memmgr.cc
+++ b/src/bin/memmgr/memmgr.cc
@@ -157,7 +157,7 @@ MemoryMgr::datasrcConfigHandler(ModuleCCSession& cc_session,
cc_session.getRemoteConfigValue("data_sources", "classes"));
// XXX: there seems to be subtle startup timing issue with Auth.
// sleeping is a naive, but easiest workaround.
- sleep(3);
+ sleep(2);
} else {
datasrc_clients_map_ = configureDataSource(config->get("classes"));
}
@@ -194,13 +194,23 @@ MemoryMgr::distributeNewVersion(config::ModuleCCSession& cc_session,
remapcmd_end);
const unsigned int seq =
cc_session.groupSendMsg(remap_command, remote_module);
- ConstElementPtr env, answer, parsed_answer;
- cc_session.groupRecvMsg(env, answer, false, seq);
- int rcode;
- parsed_answer = parseAnswer(rcode, answer);
- if (rcode != 0) {
- LOG_ERROR(memmgr_logger, MEMMGR_NOTIFY_AUTH_ERROR)
- .arg(parsed_answer->str());
+
+ // XXX we don't know how many modules receive the message, so we
+ // need to repeat receiving responses until we see timeout.
+ bool keep_waiting = true;
+ while (keep_waiting) {
+ try {
+ ConstElementPtr env, answer, parsed_answer;
+ cc_session.groupRecvMsg(env, answer, false, seq);
+ int rcode;
+ parsed_answer = parseAnswer(rcode, answer);
+ if (rcode != 0) {
+ LOG_ERROR(memmgr_logger, MEMMGR_NOTIFY_AUTH_ERROR)
+ .arg(parsed_answer->str());
+ }
+ } catch (const cc::SessionTimeout&) {
+ keep_waiting = false;
+ }
}
}
}
More information about the bind10-changes
mailing list