| Bug #19201 | TRUNCATE table with blobs fails with 1205 | ||
|---|---|---|---|
| Submitted: | 19 Apr 2006 19:08 | Modified: | 13 May 2006 16:46 |
| Reporter: | Nikolay Grishakin | ||
| Status: | Closed | ||
| Category: | Server: Cluster | Severity: | S2 (Serious) |
| Version: | 4.1 -> | OS: | Linux (Linux) |
| Assigned to: | Pekka Nousiainen | Target Version: | |
[21 Apr 2006 10:42]
Jonas Oreland
Pekka, this needs same fix that you made for ndb_delete_all with blobs.
[26 Apr 2006 15:34]
Pekka Nousiainen
i don't get the error, just endless number of blob operations.
[26 Apr 2006 22:02]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/5603
[2 May 2006 14:42]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/5799
[13 May 2006 16:46]
Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.
If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information
about accessing the source trees is available at
http://www.mysql.com/doc/en/Installing_source_tree.html
Additional info:
Documented bugfix in 4.1.20/5.0.22/5.1.11 changelogs. Closed.

Description: TRUNCATE table fails with 1205: "Lock wait timeout exceeded" error. This problem happens with DD tables too. The cause of the error is BLOB or TEXT field in the table. Removing BLOB field from the table fixes the problem. Here is the test case to reproduce this problem. CREATE LOGFILE GROUP lg ADD UNDOFILE './lg_group/undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; CREATE TABLESPACE ts1 ADD DATAFILE './table_space1/datafile.dat' USE LOGFILE GROUP lg INITIAL_SIZE 12M ENGINE NDB; CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY,a2 BLOB) TABLESPACE ts1 STORAGE DISK ENGINE=NDB; let $1=10; disable_query_log; while ($1) { eval insert into test.t1 values($1,"aaaaaaaaaaaaaaaa$1"); dec $1; } enable_query_log; SELECT * from test.t1; TRUNCATE test.t1; # query 'TRUNCATE test.t1' failed: 1205: Lock wait timeout exceeded; try #restarting transaction SELECT * from test.t1; DROP TABLE test.t1; ALTER TABLESPACE ts1 DROP DATAFILE './table_space1/datafile.dat' ENGINE=NDB; DROP TABLESPACE ts1 ENGINE=NDB; DROP LOGFILE GROUP lg ENGINE=NDB; How to repeat: see above