Bug #25330 ndb: table create and insert during node restart causes restart node crash
Submitted: 29 Dec 2006 12:17 Modified: 2 Jan 2007 9:48
Reporter: Tomas Ulin Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:5.1, 5.0?, 4.1? OS:Any
Assigned to: CPU Architecture:Any

[29 Dec 2006 12:17] Tomas Ulin
Description:
table create and insert during node restart causes restart node crash

How to repeat:
apply patch below.  In bk clone

cd mysql-test

ndb/ndbcluster --initial --small
../storage/nds/src/mgmclient/ndb_mgm
ndb_mgm> 2 restart -n
ndb_mgm> 2 error 13029

./mysql-test-run.pl --start-and-exit --ndbconnectstring="localhost:1186"
connect mysql client
mysql> create table t1 (a int key, b int) engine=ndb;
mysql> insert into t1 values(1,1);

=> node 2 crashes in LQH

void Dblqh::storedProcConfScanLab(Signal* signal) 
...
->
  case Fragrecord::ACTIVE_CREATION:
    jam();
  case Fragrecord::CRASH_RECOVERING:
    jam();
  case Fragrecord::DEFINED:
    jam();
  case Fragrecord::REMOVING:
    jam();
  default:
    ndbrequire(false);

===== storage/ndb/src/kernel/blocks/suma/Suma.cpp 1.31 vs edited =====
--- 1.31/storage/ndb/src/kernel/blocks/suma/Suma.cpp    2006-06-29 01:06:29 +02:00
+++ edited/storage/ndb/src/kernel/blocks/suma/Suma.cpp  2006-12-29 12:31:00 +01:00
@@ -257,6 +258,13 @@
 
   if(startphase == 5)
   {
+    if (ERROR_INSERTED(13029)) /* Hold startphase 5 */
+    {
+      sendSignalWithDelay(SUMA_REF, GSN_STTOR, signal,
+                          30, signal->getLength());
+      DBUG_VOID_RETURN;
+    }
+
     getNodeGroupMembers(signal);
     if (typeOfStart == NodeState::ST_NODE_RESTART ||
        typeOfStart == NodeState::ST_INITIAL_NODE_RESTART)