From: Jonas Oreland Date: November 5 2012 9:16am Subject: bzr push into mysql-5.1-telco-7.1 branch (jonas.oreland:4646 to 4647) List-Archive: http://lists.mysql.com/commits/145141 Message-Id: <20121105091606.29185.94816.4647@perch> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4647 Jonas Oreland 2012-11-05 [merge] merge 70 to 71 modified: storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp storage/ndb/src/ndbapi/Ndbif.cpp 4646 magnus.blaudd@stripped 2012-11-02 [merge] Merge 7.0 -> 7.1 modified: mysql-test/suite/ndb/r/ndbinfo.result storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp === modified file 'storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp' --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2012-10-30 10:57:45 +0000 +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp 2012-11-05 09:05:42 +0000 @@ -1307,6 +1307,7 @@ void Dbtc::execTCRELEASEREQ(Signal* sign tuserpointer = signal->theData[2]; if (tapiPointer >= capiConnectFilesize) { jam(); + ndbassert(false); signal->theData[0] = tuserpointer; signal->theData[1] = ZINVALID_CONNECTION; signal->theData[2] = __LINE__; @@ -1337,6 +1338,7 @@ void Dbtc::execTCRELEASEREQ(Signal* sign GSN_TCRELEASECONF, signal, 1, JBB); } else { jam(); + ndbassert(false); signal->theData[0] = tuserpointer; signal->theData[1] = ZINVALID_CONNECTION; signal->theData[2] = __LINE__; @@ -1346,6 +1348,7 @@ void Dbtc::execTCRELEASEREQ(Signal* sign } } else { jam(); + ndbassert(false); signal->theData[0] = tuserpointer; signal->theData[1] = ZINVALID_CONNECTION; signal->theData[2] = __LINE__; === modified file 'storage/ndb/src/ndbapi/Ndbif.cpp' --- a/storage/ndb/src/ndbapi/Ndbif.cpp 2011-09-09 10:48:14 +0000 +++ b/storage/ndb/src/ndbapi/Ndbif.cpp 2012-11-05 08:31:21 +0000 @@ -1415,12 +1415,20 @@ Ndb::sendRecSignal(Uint16 node_id, */ theImpl->incClientStat(WaitMetaRequestCount, 1); PollGuard poll_guard(* theImpl); + + /** + * Either we supply the correct conn_seq and ret_conn_seq == 0 + * or we supply conn_seq == 0 and ret_conn_seq != 0 + */ read_conn_seq= theImpl->getNodeSequence(node_id); + bool ok = + (conn_seq == read_conn_seq && ret_conn_seq == 0) || + (conn_seq == 0 && ret_conn_seq != 0); + if (ret_conn_seq) *ret_conn_seq= read_conn_seq; - if ((theImpl->get_node_alive(node_id)) && - ((read_conn_seq == conn_seq) || - (conn_seq == 0))) { + if ((theImpl->get_node_alive(node_id)) && ok) + { if (theImpl->check_send_size(node_id, send_size)) { return_code = theImpl->sendSignal(aSignal, node_id); if (return_code != -1) { @@ -1433,9 +1441,8 @@ Ndb::sendRecSignal(Uint16 node_id, return_code = -4; }//if } else { - if ((theImpl->get_node_stopping(node_id)) && - ((read_conn_seq == conn_seq) || - (conn_seq == 0))) { + if ((theImpl->get_node_stopping(node_id)) && ok) + { return_code = -5; } else { return_code = -2; No bundle (reason: useless for push emails).