#At file:///home/jonas/src/telco-7.0/ based on revid:jonas@stripped
4216 Jonas Oreland 2011-02-22
ndb - yet another fix for test_mgmd, previous fix revealed that a failed config change was simply ignored in some cases...current fix prevent the config change to even start if another node is about to start one
modified:
storage/ndb/src/mgmsrv/ConfigManager.cpp
=== modified file 'storage/ndb/src/mgmsrv/ConfigManager.cpp'
--- a/storage/ndb/src/mgmsrv/ConfigManager.cpp 2011-02-22 08:40:01 +0000
+++ b/storage/ndb/src/mgmsrv/ConfigManager.cpp 2011-02-22 13:17:24 +0000
@@ -1340,7 +1340,7 @@ ConfigManager::execCONFIG_CHECK_REQ(Sign
other_checksum = checksum;
}
- if (m_prepared_config)
+ if (m_prepared_config || m_config_change.m_new_config)
{
g_eventLogger->debug("Got CONFIG_CHECK_REQ from node: %d while "
"config change in progress (m_prepared_config). "
@@ -1352,6 +1352,19 @@ ConfigManager::execCONFIG_CHECK_REQ(Sign
return;
}
+ if (m_config_change.m_loaded_config && ss.getOwnNodeId() < nodeId)
+ {
+ g_eventLogger->debug("Got CONFIG_CHECK_REQ from node: %d while "
+ "having a loaded config (and my node is lower: %d). "
+ "Returning incorrect state, causing it to be retried",
+ nodeId,
+ ss.getOwnNodeId());
+ sendConfigCheckRef(ss, from, ConfigCheckRef::WrongState,
+ generation, other_generation,
+ m_config_state, CS_UNINITIALIZED);
+ return;
+ }
+
g_eventLogger->debug("Got CONFIG_CHECK_REQ from node: %d. "
"Our generation: %d, other generation: %d, "
"our state: %d, other state: %d, "
Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20110222131724-3si0icoesdgndvcn.bundle
| Thread |
|---|
| • bzr commit into mysql-5.1-telco-7.0 branch (jonas:4216) | Jonas Oreland | 22 Feb |