mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
fixed bug in ndb_waiter
This commit is contained in:
parent
3327c6c080
commit
faa6c59eb1
1 changed files with 45 additions and 10 deletions
|
@ -22,6 +22,7 @@
|
|||
#include <NdbSleep.h>
|
||||
#include <getarg.h>
|
||||
#include <kernel/ndb_limits.h>
|
||||
#include "../src/common/mgmcommon/LocalConfig.hpp"
|
||||
|
||||
#include <NDBT.hpp>
|
||||
|
||||
|
@ -47,9 +48,43 @@ int main(int argc, const char** argv){
|
|||
arg_printusage(args, num_args, argv[0], desc);
|
||||
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
||||
}
|
||||
|
||||
char buf[255];
|
||||
_hostName = argv[optind];
|
||||
|
||||
// NdbRestarter restarter(_hostName);
|
||||
if (_hostName == NULL){
|
||||
LocalConfig lcfg;
|
||||
if(!lcfg.init())
|
||||
{
|
||||
lcfg.printError();
|
||||
lcfg.printUsage();
|
||||
g_err << "Error parsing local config file" << endl;
|
||||
return NDBT_ProgramExit(NDBT_FAILED);
|
||||
}
|
||||
|
||||
for (int i = 0; i<lcfg.items; i++)
|
||||
{
|
||||
MgmtSrvrId * m = lcfg.ids[i];
|
||||
|
||||
switch(m->type){
|
||||
case MgmId_TCP:
|
||||
snprintf(buf, 255, "%s:%d", m->data.tcp.remoteHost, m->data.tcp.port);
|
||||
_hostName = buf;
|
||||
break;
|
||||
case MgmId_File:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (_hostName != NULL)
|
||||
break;
|
||||
}
|
||||
if (_hostName == NULL)
|
||||
{
|
||||
g_err << "No management servers configured in local config file" << endl;
|
||||
return NDBT_ProgramExit(NDBT_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
if (waitClusterStarted(_hostName) != 0)
|
||||
return NDBT_ProgramExit(NDBT_FAILED);
|
||||
|
@ -137,15 +172,6 @@ waitClusterStarted(const char* _addr, unsigned int _timeout)
|
|||
int _nodes[MAX_NDB_NODES];
|
||||
int _num_nodes = 0;
|
||||
|
||||
if (getStatus() != 0)
|
||||
return -1;
|
||||
|
||||
// Collect all nodes into nodes
|
||||
for (size_t i = 0; i < ndbNodes.size(); i++){
|
||||
_nodes[i] = ndbNodes[i].node_id;
|
||||
_num_nodes++;
|
||||
}
|
||||
|
||||
handle = ndb_mgm_create_handle();
|
||||
if (handle == NULL){
|
||||
g_err << "handle == NULL" << endl;
|
||||
|
@ -158,6 +184,15 @@ waitClusterStarted(const char* _addr, unsigned int _timeout)
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (getStatus() != 0)
|
||||
return -1;
|
||||
|
||||
// Collect all nodes into nodes
|
||||
for (size_t i = 0; i < ndbNodes.size(); i++){
|
||||
_nodes[i] = ndbNodes[i].node_id;
|
||||
_num_nodes++;
|
||||
}
|
||||
|
||||
unsigned int attempts = 0;
|
||||
unsigned int resetAttempts = 0;
|
||||
const unsigned int MAX_RESET_ATTEMPTS = 10;
|
||||
|
|
Loading…
Reference in a new issue