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)