3511 magnus.blaudd@stripped 2012-11-21
ndb
- fix compiler warning about signed unisgned comparison
modified:
storage/ndb/test/ndbapi/testDict.cpp
3510 Frazer Clement 2012-11-20
Bug #14787522 PROD: NDBD NODE HANGING IN PHASE 3 DUE TO DICT LOCK WITH UNKNOWN HOLDER.
The various distributed protocols involved in dropping a table in 6.3 were
not well protected against node failures.
This could result in the drop table operation waiting indefinitely for a
reply from some node which had failed.
The indefinite wait caused the originating DDL operation to block until
NdbApi timed out.
Additionally, the 'DICT' (cluster internal dictionary) lock taken by
the drop table operation is held indefinitely.
Additionally, the logical 'Global schema lock', taken by the
MySQLD originating the drop table operation is held until the NdbApi
operation times out.
This is fixed by adding node failure handling to the drop table protocols
in 6.3, for DICT Slave node failures.
A new testcase is added to testDict, and the daily-basic suite.
Debugging / visibility enhancements :
A new dump code, 1228 (DictDumpLockQueue) is added to dump the contents
of the DICT lock queue.
A delayed DICT lock grant is now logged.
The DICT_TRACE mechanism is extended with DICT LOCK debugging.
modified:
storage/ndb/include/kernel/signaldata/DropTab.hpp
storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp
storage/ndb/include/kernel/signaldata/PrepDropTab.hpp
storage/ndb/src/kernel/blocks/ERROR_codes.txt
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
storage/ndb/src/kernel/vm/LockQueue.cpp
storage/ndb/src/kernel/vm/LockQueue.hpp
storage/ndb/test/ndbapi/testDict.cpp
storage/ndb/test/run-test/daily-basic-tests.txt
=== modified file 'storage/ndb/test/ndbapi/testDict.cpp'
--- a/storage/ndb/test/ndbapi/testDict.cpp 2012-11-20 23:37:20 +0000
+++ b/storage/ndb/test/ndbapi/testDict.cpp 2012-11-21 11:34:45 +0000
@@ -4849,7 +4849,7 @@ runDropTabNF(NDBT_Context* ctx, NDBT_Ste
*/
NdbRestarter restarter;
- Uint32 numScenarios = sizeof(DropTabNFScenarios) / sizeof(DropTabNFScenario);
+ int numScenarios = sizeof(DropTabNFScenarios) / sizeof(DropTabNFScenario);
int numLoops = ctx->getNumLoops();
for (int r=0; r < numLoops; r++)
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.1-telco-6.3 branch (magnus.blaudd:3510 to 3511) | magnus.blaudd | 21 Nov |