diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 0a7dc2ec32e..221d47a0da0 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -6093,9 +6093,16 @@ int ndbcluster_discover(handlerton *hton, THD* thd, const char *db, { const NdbError err= dict->getNdbError(); if (err.code == 709 || err.code == 723) + { error= -1; + DBUG_PRINT("info", ("ndb_error.code: %u", ndb_error.code)); + } else + { + error= -1; ndb_error= err; + DBUG_PRINT("info", ("ndb_error.code: %u", ndb_error.code)); + } goto err; } DBUG_PRINT("info", ("Found table %s", tab->getName())); diff --git a/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp index ba2329888d2..c999c7ed919 100644 --- a/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -1753,6 +1753,7 @@ NdbDictInterface::dictSignal(NdbApiSignal* sig, m_transporter->sendSignal(sig, node)); if(res != 0){ DBUG_PRINT("info", ("dictSignal failed to send signal")); + m_error.code = 4007; continue; } @@ -1770,6 +1771,7 @@ NdbDictInterface::dictSignal(NdbApiSignal* sig, */ if(ret_val == -2) //WAIT_NODE_FAILURE { + m_error.code = 4013; continue; } if(m_waiter.m_state == WST_WAIT_TIMEOUT) diff --git a/storage/ndb/src/ndbapi/ndberror.c b/storage/ndb/src/ndbapi/ndberror.c index 8ed8727dd9e..85ec0db50a5 100644 --- a/storage/ndb/src/ndbapi/ndberror.c +++ b/storage/ndb/src/ndbapi/ndberror.c @@ -149,10 +149,12 @@ ErrorBundle ErrorCodes[] = { /** * Unknown result */ + { 4007, DMEC, UR, "Send to ndbd failed" }, { 4008, DMEC, UR, "Receive from NDB failed" }, { 4009, DMEC, UR, "Cluster Failure" }, { 4012, DMEC, UR, "Request ndbd time-out, maybe due to high load or communication problems"}, + { 4013, DMEC, UR, "Request timed out in waiting for node faiulure"}, { 4024, DMEC, UR, "Time-out, most likely caused by simple read or cluster failure" },