From: magnus.blaudd Date: March 5 2012 1:21pm Subject: bzr push into mysql-5.5-cluster-7.2 branch (magnus.blaudd:3827 to 3829) List-Archive: http://lists.mysql.com/commits/143095 Message-Id: <201203051322.q25DM2fa031938@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3829 magnus.blaudd@stripped 2012-03-05 [merge] Merge 7.1 -> 7.2 modified: storage/ndb/src/kernel/blocks/pgman.cpp storage/ndb/src/ndbapi/NdbOperationSearch.cpp storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 3828 magnus.blaudd@stripped 2012-03-05 [merge] Merge 7.1 -> 7.2 modified: storage/ndb/src/mgmsrv/ConfigManager.cpp storage/ndb/src/mgmsrv/MgmtSrvr.cpp storage/ndb/test/ndbapi/testMgmd.cpp 3827 Jonas Oreland 2012-03-05 [merge] ndb - merge 70-spj-spj into 7.2 (improved out-of-memory handling incl. error insert test-cases) modified: storage/ndb/include/kernel/signaldata/DbspjErr.hpp storage/ndb/src/kernel/blocks/dbspj/DbspjMain.cpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/test/include/HugoQueryBuilder.hpp storage/ndb/test/ndbapi/testSpj.cpp storage/ndb/test/src/HugoQueryBuilder.cpp === modified file 'storage/ndb/src/kernel/blocks/pgman.cpp' --- a/storage/ndb/src/kernel/blocks/pgman.cpp 2011-07-05 12:46:07 +0000 +++ b/storage/ndb/src/kernel/blocks/pgman.cpp 2012-03-05 13:04:02 +0000 @@ -27,7 +27,7 @@ #include #include -#include +#include /** * Requests that make page dirty @@ -2629,21 +2629,13 @@ operator<<(NdbOut& out, Ptr gptr; pe.m_this->m_global_page_pool.getPtr(gptr, pe.m_real_page_i); - SHA1_CONTEXT c; - uint8 digest[SHA1_HASH_SIZE]; - mysql_sha1_reset(&c); - mysql_sha1_input(&c, (uchar*)gptr.p->data, sizeof(gptr.p->data)); - mysql_sha1_result(&c, digest); - char buf[100]; - int i; - for (i = 0; i < 20; i++) { - const char* const hexdigit = "0123456789abcdef"; - uint8 x = digest[i]; - buf[2*i + 0] = hexdigit[x >> 4]; - buf[2*i + 1] = hexdigit[x & 0xF]; - } - buf[2*i] = 0; - out << " sha1=" << buf; + Uint32 hash_result[4]; + /* NOTE: Assuming "data" is 64 bit aligned as required by 'md5_hash' */ + md5_hash(hash_result, + (Uint64*)gptr.p->data, sizeof(gptr.p->data)/sizeof(Uint32)); + out.print(" md5=%08x%08x%08x%08x", + hash_result[0], hash_result[1], + hash_result[2], hash_result[3]); } #endif } === modified file 'storage/ndb/src/mgmsrv/ConfigManager.cpp' --- a/storage/ndb/src/mgmsrv/ConfigManager.cpp 2011-02-22 21:29:46 +0000 +++ b/storage/ndb/src/mgmsrv/ConfigManager.cpp 2012-03-05 12:49:33 +0000 @@ -123,7 +123,8 @@ ConfigManager::find_nodeid_from_configdi BaseString config_name; NdbDir::Iterator iter; - if (iter.open(m_configdir) != 0) + if (!m_configdir || + iter.open(m_configdir) != 0) return 0; const char* name; @@ -2102,8 +2103,9 @@ ConfigManager::delete_saved_configs(void { NdbDir::Iterator iter; - if (iter.open(m_configdir) != 0) - return false; + if (!m_configdir || + iter.open(m_configdir) != 0) + return 0; bool result = true; const char* name; @@ -2144,8 +2146,9 @@ ConfigManager::saved_config_exists(BaseS { NdbDir::Iterator iter; - if (iter.open(m_configdir) != 0) - return false; + if (!m_configdir || + iter.open(m_configdir) != 0) + return 0; const char* name; unsigned nodeid; @@ -2182,8 +2185,9 @@ ConfigManager::failed_config_change_exis { NdbDir::Iterator iter; - if (iter.open(m_configdir) != 0) - return false; + if (!m_configdir || + iter.open(m_configdir) != 0) + return 0; const char* name; char tmp; === modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.cpp' --- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2011-12-15 17:19:26 +0000 +++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2012-03-05 12:51:16 +0000 @@ -333,8 +333,18 @@ MgmtSrvr::init() DBUG_ENTER("MgmtSrvr::init"); const char* configdir; - if (!(configdir= check_configdir())) - DBUG_RETURN(false); + + if (!m_opts.config_cache) + { + g_eventLogger->info("Skipping check of config directory since " + "config cache is disabled."); + configdir = NULL; + } + else + { + if (!(configdir= check_configdir())) + DBUG_RETURN(false); + } if (!(m_config_manager= new ConfigManager(m_opts, configdir))) { @@ -4311,6 +4321,7 @@ MgmtSrvr::show_variables(NdbOut& out) out << "no_nodeid_checks: " << yes_no(m_opts.no_nodeid_checks) << endl; out << "print_full_config: " << yes_no(m_opts.print_full_config) << endl; out << "configdir: " << str_null(m_opts.configdir) << endl; + out << "config_cache: " << yes_no(m_opts.config_cache) << endl; out << "verbose: " << yes_no(m_opts.verbose) << endl; out << "reload: " << yes_no(m_opts.reload) << endl; === modified file 'storage/ndb/src/ndbapi/NdbOperationSearch.cpp' --- a/storage/ndb/src/ndbapi/NdbOperationSearch.cpp 2011-07-05 12:46:07 +0000 +++ b/storage/ndb/src/ndbapi/NdbOperationSearch.cpp 2012-03-05 13:04:02 +0000 @@ -34,7 +34,6 @@ Adjust: 971022 UABMNST First version #include #include #include -#include /****************************************************************************** CondIdType equal(const char* anAttrName, char* aValue, Uint32 aVarKeylen); === modified file 'storage/ndb/src/ndbapi/ndb_cluster_connection.cpp' --- a/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 2011-09-19 20:03:43 +0000 +++ b/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 2012-03-05 13:04:02 +0000 @@ -29,7 +29,6 @@ #include #include #include -#include #include "NdbImpl.hpp" #include "NdbDictionaryImpl.hpp" === modified file 'storage/ndb/test/ndbapi/testMgmd.cpp' --- a/storage/ndb/test/ndbapi/testMgmd.cpp 2011-07-05 12:46:07 +0000 +++ b/storage/ndb/test/ndbapi/testMgmd.cpp 2012-03-05 12:51:16 +0000 @@ -662,7 +662,41 @@ int runTestNoConfigCache(NDBT_Context* c "ndb_1_config.bin.1", NULL).c_str()); CHECK(bin_conf_file == false); - + + mgmd->stop(); + return NDBT_OK; +} + + +/* Test for BUG#13428853 */ +int runTestNoConfigCache_DontCreateConfigDir(NDBT_Context* ctx, NDBT_Step* step) +{ + NDBT_Workingdir wd("test_mgmd"); // temporary working directory + + g_err << "** Create config.ini" << endl; + Properties config = ConfigFactory::create(); + CHECK(ConfigFactory::write_config_ini(config, + path(wd.path(), + "config.ini", + NULL).c_str())); + + // Start ndb_mgmd from config.ini + Mgmd* mgmd = new Mgmd(1); + CHECK(mgmd->start_from_config_ini(wd.path(), + "--skip-config-cache", + "--config-dir=dir37", + NULL)); + + // Connect the ndb_mgmd(s) + CHECK(mgmd->connect(config)); + + // wait for confirmed config + CHECK(mgmd->wait_confirmed_config()); + + // Check configdir not created + bool conf_dir_exist = file_exists(path(wd.path(), "dir37", NULL).c_str()); + CHECK(conf_dir_exist == false); + mgmd->stop(); return NDBT_OK; } @@ -1185,7 +1219,13 @@ TESTCASE("NoCfgCache", { INITIALIZER(runTestNoConfigCache); } - +TESTCASE("NoCfgCacheOrConfigDir", + "Test that when an mgmd is started with --skip-config-cache, " + "no ndb_xx_config.xx.bin file is created, but you can " + "connect to the mgm node and retrieve the config.") +{ + INITIALIZER(runTestNoConfigCache_DontCreateConfigDir); +} TESTCASE("Bug45495", "Test that mgmd can be restarted in any order") { No bundle (reason: useless for push emails).