=== modified file 'storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp' --- storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp 2010-08-11 09:59:39 +0000 +++ storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp 2010-11-16 17:51:23 +0000 @@ -3734,6 +3734,7 @@ void Qmgr::execCLOSE_COMCONF(Signal* sig UintR Tindex = 0; for(Tindex = 0; Tindex < MAX_NDB_NODES; Tindex++){ if(NdbNodeBitmask::get(closeCom->theNodes, Tindex)){ + // DODGY : cprepFailedNodes trampled from 0 here cprepFailedNodes[arrayIndex] = Tindex; arrayIndex++; } @@ -3767,6 +3768,8 @@ void Qmgr::execCLOSE_COMCONF(Signal* sig jam(); tprepFailConf = ZFALSE; arrGuard(cnoPrepFailedNodes, MAX_NDB_NODES); + // DODGY : cprepFailedNodes appended using unrelated + // index here cprepFailedNodes[cnoPrepFailedNodes] = TfailedNodeNo; cnoPrepFailedNodes = cnoPrepFailedNodes + 1; }//if @@ -3774,7 +3777,8 @@ void Qmgr::execCLOSE_COMCONF(Signal* sig }//if if (tprepFailConf == ZFALSE) { jam(); - for (Tindex = 1; Tindex < MAX_NDB_NODES; Tindex++) { + // Suggest this should loop from 0 (or do something else sensible) + for (Tindex = 0; Tindex < MAX_NDB_NODES; Tindex++) { cfailedNodes[Tindex] = cprepFailedNodes[Tindex]; }//for cnoFailedNodes = cnoPrepFailedNodes;