Bug #8853 Transaction aborted after long time during node failure (4012)
Submitted: 28 Feb 2005 22:01 Modified: 3 Mar 2005 7:47
Reporter: Johan Andersson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S1 (Critical)
Version:mysql 4.1.10 OS:Any (*)
Assigned to: Jonas Oreland CPU Architecture:Any

[28 Feb 2005 22:01] Johan Andersson
Description:
Sometimes[...] a transaction gets not aborted until after a very long time (~6 minutes) during a node failure.

How to repeat:
2 NDB nodes having:

[NDBD DEFAULT]
NoOfReplicas=2
Datadir=/space/mysql/mobilkom
DataMemory: 900M
IndexMemory: 300M
LockPagesInMainMemory: Y
MaxNoOfAttributes: 12000
MaxNoOfConcurrentOperations: 100000
MaxNoOfUniqueHashIndexes: 50
MaxNoOfOrderedIndexes: 200
MaxNoOfTables: 600
NoOfFragmentLogFiles: 20
TimeBetweenGlobalCheckpoints: 1000
TimeBetweenLocalCheckpoints: 20

MYSQL server having default values.

CREATE TABLE `Bench` (
  `datum` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `id` int(11) NOT NULL default '0',
  `id2` int(11) NOT NULL default '0',
  `name` varchar(25) default NULL,
  `num` int(11) default NULL,
  PRIMARY KEY  (`datum`,`id`,`id2`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1

In mysql:

set autocommit=0;
begin;
insert into test values('2005-02-25 12:33:33', 12121, 22, 'Test', 12);                                  

<< kill a node with "kill -9 pid pid" >>

commit;

after a very long time...
ERROR 1296 (HY000): Got error 4012 'Time-out, most likely caused by simple reador cluster failure' from ndbcluster

If you don't get the above, then you killed the wrong node!
[28 Feb 2005 22:05] Johan Andersson
insert into test...
should be
insert into Bench ...
[28 Feb 2005 22:12] Johan Andersson
Note, the mysql server was colocated with one of the ndbd node.
The problem occurs like this:
begin
insert ...
kill the ndbd node on the same computer as the mysql server.
commit
(normal abortion behavior)

Do node recovery
do
begin
insert ...
kill the ndbd  on the other computer.
commit
(unexpected result).