Commit 44f4b829 authored by hanfeng's avatar hanfeng
Browse files

trac[775] fix the bug that if new configure failed, we need notify configure manager

parent 660d7d78
...@@ -172,9 +172,15 @@ main(int argc, char* argv[]) { ...@@ -172,9 +172,15 @@ main(int argc, char* argv[]) {
// all initial configurations, but as a short term workaround we // all initial configurations, but as a short term workaround we
// handle the traditional "database_file" setup by directly calling // handle the traditional "database_file" setup by directly calling
// updateConfig(). // updateConfig().
// if server load configure failed, we won't exit, give user second chance
// to correct the configure.
auth_server->setConfigSession(config_session); auth_server->setConfigSession(config_session);
configureAuthServer(*auth_server, config_session->getFullConfig()); try {
auth_server->updateConfig(ElementPtr()); configureAuthServer(*auth_server, config_session->getFullConfig());
auth_server->updateConfig(ElementPtr());
} catch (const isc::Exception& ex) {
cout << "[bin10-auth] Server load config failed:" << ex.what() << endl;
}
if (uid != NULL) { if (uid != NULL) {
changeUser(uid); changeUser(uid);
......
...@@ -115,6 +115,9 @@ installListenAddresses(const AddressList& newAddresses, ...@@ -115,6 +115,9 @@ installListenAddresses(const AddressList& newAddresses,
dlog("Unable to recover from error;", true); dlog("Unable to recover from error;", true);
dlog(string("Rollback failed with: ") + e2.what(), true); dlog(string("Rollback failed with: ") + e2.what(), true);
} }
//Anyway the new configure has problem, we need to notify configure
//manager the new configure doesn't work
throw;
} }
} }
......
...@@ -175,7 +175,7 @@ TEST_F(InstallListenAddresses, rollback) { ...@@ -175,7 +175,7 @@ TEST_F(InstallListenAddresses, rollback) {
EXPECT_NO_THROW(installListenAddresses(valid_, store_, dnss_)); EXPECT_NO_THROW(installListenAddresses(valid_, store_, dnss_));
checkAddresses(valid_, "Before rollback"); checkAddresses(valid_, "Before rollback");
// This should not bind them, but should leave the original addresses // This should not bind them, but should leave the original addresses
EXPECT_NO_THROW(installListenAddresses(invalid_, store_, dnss_)); EXPECT_THROW(installListenAddresses(invalid_, store_, dnss_), exception);
checkAddresses(valid_, "After rollback"); checkAddresses(valid_, "After rollback");
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment