Bug #57323 | myisam corruption with insert ignore and invalid spatial data | ||
---|---|---|---|
Submitted: | 7 Oct 2010 17:50 | Modified: | 21 Jun 2011 18:51 |
Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S1 (Critical) |
Version: | 5.1.53, 5.5.7 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | corruption, spatial |
[7 Oct 2010 17:50]
Shane Bester
[7 Oct 2010 17:58]
Valeriy Kravchuk
Verified on Mac OS X: macbook-pro:5.5 openxs$ bin/mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.7-rc-debug Source distribution Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> drop table if exists `t1`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> create table `t1` (`a` linestring not null,`b` geometry not null, -> spatial key (`a`),spatial key (`b`)) engine=myisam; Query OK, 0 rows affected (0.08 sec) mysql> mysql> insert into `t1` set -> `b` = geomfromtext("point(1 2)"), -> `a` = geomfromtext("point(1 2)"); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert ignore into `t1` set -> `a` = geomfromtext("point(-6 0)"), -> `b` = geomfromtext("error"); ERROR 126 (HY000): Incorrect key file for table './test/t1.MYI'; try to repair it
[21 Jun 2011 18:51]
Paul DuBois
Noted in 5.1.59, 5.5.16 changelogs. For MyISAM tables, attempts to insert incorrect data into an index GEOMETRY column could result in table corruption. CHANGESET - http://lists.mysql.com/commits/138792
[28 Jun 2011 16:11]
Paul DuBois
Correction: Noted in 5.5.15, not 5.5.16.