Transactions With No Deadlock End Up With Errors: "Ndb error: 266 Time-out in NDB" Or "ERROR 1205 (HY000): Lock wait timeout exceeded" (Doc ID 1986888.1)

Last updated on JUNE 26, 2017

Applies to:

MySQL Cluster - Version 7.3 and later
Information in this document applies to any platform.

Symptoms

While doing operations which are potentially not deadlocking in nature, the following errors occur:

mysql> ALTER TABLE `test`.`t1` CHANGE `a` `a` TEXT CHARSET latin1 COLLATE latin1_swedish_ci NULL; 
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
21/08/2013 13:33:15.583 : DB_ERROR(1), Ndb error: 266 Time-out in NDB, probably caused by deadlock commit(NO_WRITE) failed
21/08/2013 13:36:16.457 : DB_ERROR(1), Ndb error: 266 Time-out in NDB, probably caused by deadlock commit(NO_WRITE) failed

A few examples:

  1. Reading a large blob, only select no update
  2. Running updates on mutually exclusive rows , but the load being heavy such that it will cause the redo to slow down. The redo issue can be seen in the data node logs. 
  3. Running an alter table on a table with large number of blobs. This is reported to happen with rows with large size of blobs.

Other variations may exist.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms