Bug #18036 | update of table joined to self reports table as crashed | ||
---|---|---|---|
Submitted: | 7 Mar 2006 15:11 | Modified: | 21 Jun 2006 4:43 |
Reporter: | Dave Pullin (Basic Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 5.0.18/5.1bk/4.1bk | OS: | Windows (Windows 2000, Linux) |
Assigned to: | Sergey Vojtovich | CPU Architecture: | Any |
[7 Mar 2006 15:11]
Dave Pullin
[7 Mar 2006 15:39]
MySQL Verification Team
Thank you for the bug report. I was able to repeaT: miguel@hegel:~/dbs/5.0> bin/mysqladmin -uroot create db27 miguel@hegel:~/dbs/5.0> bin/mysql -uroot db27 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.19-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE TABLE temp ( N int , related_N int , log text ); Query OK, 0 rows affected (0.01 sec) mysql> insert into temp (N,related_N) values (1,null), (2,1); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> update temp as t join temp as related -> on related.N = t.related_N -> set t.log='changed',related.log='changed' -> where t.related_N is not null ; ERROR 1194 (HY000): Table 'related' is marked as crashed and should be repaired mysql> miguel@hegel:~/dbs/5.1> bin/mysqladmin -uroot create db27 miguel@hegel:~/dbs/5.1> bin/mysql -uroot db27 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.1.8-beta-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE TABLE temp ( N int , related_N int , log text ); Query OK, 0 rows affected (0.02 sec) mysql> mysql> insert into temp (N,related_N) values (1,null), (2,1); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> mysql> update temp as t join temp as related -> on related.N = t.related_N -> set t.log='changed',related.log='changed' -> where t.related_N is not null ; ERROR 1194 (HY000): Table 'temp' is marked as crashed and should be repaired mysql> miguel@hegel:~/dbs/4.1> bin/mysql -uroot db27 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 4.1.19-debug-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE TABLE temp ( N int , related_N int , log text ); Query OK, 0 rows affected (0.02 sec) mysql> mysql> insert into temp (N,related_N) values (1,null), (2,1); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> mysql> update temp as t join temp as related -> on related.N = t.related_N -> set t.log='changed',related.log='changed' -> where t.related_N is not null ; ERROR 1030 (HY000): Got error 127 from storage engine mysql> exit Bye miguel@hegel:~/dbs/4.1> bin/perror 127 MySQL error code 127: Record-file is crashed miguel@hegel:~/dbs/4.1>
[8 Jun 2006 11:18]
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/7386
[19 Jun 2006 9:05]
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/7828
[19 Jun 2006 12:51]
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/7847
[19 Jun 2006 19:02]
Sergey Vojtovich
Pushed into trees currently marked as 4.1.21, 5.0.23, 5.1.12.
[21 Jun 2006 4:43]
Paul DuBois
Noted in 4.1.21, 5.0.23, 5.1.12 changelogs. An update that used a join of a table to itself and modified the table on both sides of the join reported the table as crashed.
[27 Oct 2006 17:21]
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/14499 ChangeSet@1.2534, 2006-10-27 22:23:10+05:00, svoj@mysql.com +3 -0 BUG#21310 - Trees in SQL causing a "crashed" table with MyISAM storage engine An update that used a join of a table to itself and modified the table on one side of the join reported the table as crashed. This problem was introduced with fix for BUG#18036. Do not rely on (tables_to_update & table->map) while determining whether to use record cache for self-joined table updates. It must be disabled for both: table that is opened for reading and table that is opened for writing.