Simpler test case for duplicate key error in transaction. =====Tables===== CREATE TABLE `basic` ( `value` int(11) NOT NULL, PRIMARY KEY (`value`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 CREATE TABLE `lr` ( `id` int(11) NOT NULL DEFAULT '0', `ps` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 INSERT INTO lr VALUES ( 1, 0 ); =====Transaction===== SET AUTOCOMMIT=0; START TRANSACTION; UPDATE lr SET ps = [1|2] WHERE id = 1; // change ps = [1|2] in each script. DELETE FROM basic; INSERT INTO basic VALUES (0); COMMIT; =====Script===== =====Output of 2 back to back events===== // This first event looks similar to the race you pointed out. ( there are 2 events in this log ). P2 - Starting: 1287163488.3935 P2 - Started, Updating: 1287163488.3936 P2 - Finished Updating, Deleting: 1287163488.3937 P1 - Starting: 1287163488.4236 P1 - Started, Updating: 1287163488.4236 P1 - Finished Updating, Deleting: 1287163488.4238 P2 - Finished Deleting, Inserting: 1287163488.424 P1 - Finished Deleting, Inserting: 1287163488.4245 P2 - Finished, Checking Error: 1287163488.4246 P2 - Committing: 1287163488.4246 P2 - Committed: 1287163488.4247 P2 - Starting: 1287163488.4247 P2 - Started, Updating: 1287163488.4248 P1 - Finished, Checking Error: 1287163488.425 P1 - Duplicate entry '0' for key 'PRIMARY' P1 - On: INSERT INTO basic VALUES (0) P1 - Committing: 1287163488.425 P1 - Committed: 1287163488.425 P2 - Finished Updating, Deleting: 1287163488.425 P1 - Starting: 1287163488.4251 P1 - Started, Updating: 1287163488.4251 P1 - Finished Updating, Deleting: 1287163488.4253 // Note here that P1 hangs while P2 completes 10 transactions???? P2 - Finished Deleting, Inserting: 1287163488.4257 P2 - Finished, Checking Error: 1287163488.4259 P2 - Committing: 1287163488.4259 P2 - Committed: 1287163488.426 P2 - Starting: 1287163488.426 P2 - Started, Updating: 1287163488.426 P2 - Finished Updating, Deleting: 1287163488.4262 P2 - Finished Deleting, Inserting: 1287163488.4266 P2 - Finished, Checking Error: 1287163488.4268 P2 - Committing: 1287163488.4268 P2 - Committed: 1287163488.4268 P2 - Starting: 1287163488.4269 P2 - Started, Updating: 1287163488.4269 P2 - Finished Updating, Deleting: 1287163488.4271 P2 - Finished Deleting, Inserting: 1287163488.4276 P2 - Finished, Checking Error: 1287163488.4278 P2 - Committing: 1287163488.4278 P2 - Committed: 1287163488.4279 P2 - Starting: 1287163488.4279 P2 - Started, Updating: 1287163488.4279 P2 - Finished Updating, Deleting: 1287163488.4281 P2 - Finished Deleting, Inserting: 1287163488.4284 P2 - Finished, Checking Error: 1287163488.4286 P2 - Committing: 1287163488.4286 P2 - Committed: 1287163488.4286 P2 - Starting: 1287163488.4287 P2 - Started, Updating: 1287163488.4287 P2 - Finished Updating, Deleting: 1287163488.4289 P2 - Finished Deleting, Inserting: 1287163488.4294 P2 - Finished, Checking Error: 1287163488.4295 P2 - Committing: 1287163488.4296 P2 - Committed: 1287163488.4296 P2 - Starting: 1287163488.4296 P2 - Started, Updating: 1287163488.4296 P2 - Finished Updating, Deleting: 1287163488.4298 P2 - Finished Deleting, Inserting: 1287163488.4301 P2 - Finished, Checking Error: 1287163488.4303 P2 - Committing: 1287163488.4303 P2 - Committed: 1287163488.4304 P2 - Starting: 1287163488.4304 P2 - Started, Updating: 1287163488.4304 P2 - Finished Updating, Deleting: 1287163488.4306 P2 - Finished Deleting, Inserting: 1287163488.4311 P2 - Finished, Checking Error: 1287163488.4312 P2 - Committing: 1287163488.4313 P2 - Committed: 1287163488.4313 P2 - Starting: 1287163488.4313 P2 - Started, Updating: 1287163488.4314 P2 - Finished Updating, Deleting: 1287163488.4315 P2 - Finished Deleting, Inserting: 1287163488.4318 P2 - Finished, Checking Error: 1287163488.432 P2 - Committing: 1287163488.432 P2 - Committed: 1287163488.4321 P2 - Starting: 1287163488.4321 P2 - Started, Updating: 1287163488.4321 P2 - Finished Updating, Deleting: 1287163488.4323 P2 - Finished Deleting, Inserting: 1287163488.4328 P2 - Finished, Checking Error: 1287163488.433 P2 - Committing: 1287163488.433 P2 - Committed: 1287163488.433 P2 - Starting: 1287163488.433 P2 - Started, Updating: 1287163488.4331 P2 - Finished Updating, Deleting: 1287163488.4332 P2 - Finished Deleting, Inserting: 1287163488.4335 P2 - Finished, Checking Error: 1287163488.4337 P2 - Committing: 1287163488.4337 P2 - Committed: 1287163488.4338 P2 - Starting: 1287163488.4338 P2 - Started, Updating: 1287163488.4338 P2 - Finished Updating, Deleting: 1287163488.434 P2 - Finished Deleting, Inserting: 1287163488.4346 P2 - Finished, Checking Error: 1287163488.4348 P2 - Committing: 1287163488.4348 P2 - Committed: 1287163488.4348 P2 - Starting: 1287163488.4349 P2 - Started, Updating: 1287163488.4349 P1 - Finished Deleting, Inserting: 1287163488.4351 P2 - Finished Updating, Deleting: 1287163488.4351 P1 - Finished, Checking Error: 1287163488.4354 P1 - Duplicate entry '0' for key 'PRIMARY' P1 - On: INSERT INTO basic VALUES (0) P1 - Committing: 1287163488.4355 P1 - Committed: 1287163488.4355 P2 - Finished Deleting, Inserting: 1287163488.4355 P2 - Finished, Checking Error: 1287163488.4358 P2 - Committing: 1287163488.4358 P2 - Committed: 1287163488.4358