summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2005-12-21 16:31:58 +0100
committerunknown <jonas@perch.ndb.mysql.com>2005-12-21 16:31:58 +0100
commit887d498b26b863412d310b4827aa2925f2c90329 (patch)
tree26dd0d344f53ab6df965d7a39dcdbf7c287fcd8b /ndb
parentf7489c32a26080f148efa7f251bb06d3b8e1ce8a (diff)
downloadmariadb-git-887d498b26b863412d310b4827aa2925f2c90329.tar.gz
bug#15908 - ndb
When scan is completed, but lqhkeyreq is outstanding on primary replica and starting node dies, scan will not be closed leading to error handling of failed node not completing ndb/src/kernel/blocks/ERROR_codes.txt: New error code ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Set scan state to WAIT_LQHKEY_COPY when scan is finished but LQHKEYREQ is outstanding
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/ERROR_codes.txt4
-rw-r--r--ndb/src/kernel/blocks/dblqh/DblqhMain.cpp9
2 files changed, 12 insertions, 1 deletions
diff --git a/ndb/src/kernel/blocks/ERROR_codes.txt b/ndb/src/kernel/blocks/ERROR_codes.txt
index 5d7c8d758fc..62481837c14 100644
--- a/ndb/src/kernel/blocks/ERROR_codes.txt
+++ b/ndb/src/kernel/blocks/ERROR_codes.txt
@@ -3,7 +3,7 @@ Next NDBCNTR 1000
Next NDBFS 2000
Next DBACC 3002
Next DBTUP 4013
-Next DBLQH 5042
+Next DBLQH 5043
Next DBDICT 6006
Next DBDIH 7174
Next DBTC 8037
@@ -312,6 +312,8 @@ LQH:
5026 Crash when receiving COPY_ACTIVEREQ
5027 Crash when receiving STAT_RECREQ
+5042 Crash starting node, when scan is finished on primary replica
+
Test Crashes in handling take over
----------------------------------
diff --git a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
index fc6a470e0ef..c8460630d62 100644
--- a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+++ b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
@@ -9220,6 +9220,15 @@ void Dblqh::nextScanConfCopyLab(Signal* signal)
// completion. Signal completion through scanCompletedStatus-flag.
/*---------------------------------------------------------------------------*/
scanptr.p->scanCompletedStatus = ZTRUE;
+ scanptr.p->scanState = ScanRecord::WAIT_LQHKEY_COPY;
+ if (ERROR_INSERTED(5042))
+ {
+ CLEAR_ERROR_INSERT_VALUE;
+ tcConnectptr.p->copyCountWords = ~0;
+ signal->theData[0] = 9999;
+ sendSignal(numberToRef(CMVMI, scanptr.p->scanNodeId),
+ GSN_NDB_TAMPER, signal, 1, JBA);
+ }
return;
}//if