| Bug #19835 | Binary copy of corrupted tables crash the server when issuing a query | ||
|---|---|---|---|
| Submitted: | 16 May 2006 1:57 | Modified: | 11 Jul 2006 9:12 |
| Reporter: | Tordjman Yohan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: MyISAM storage engine | Severity: | S1 (Critical) |
| Version: | 5.0.22/4.1BK/5.0BK/5.1BK | OS: | Linux (Linux) |
| Assigned to: | Ingo Strüwing | CPU Architecture: | Any |
| Tags: | corruption, myisam | ||
[16 May 2006 1:57]
Tordjman Yohan
[16 May 2006 1:59]
Tordjman Yohan
PS: the version is 5.0.22-nightly-20060515 with the patch http://lists.mysql.com/commits/6375 applyed a mysqlcheck on the database reports nothing.
[16 May 2006 2:21]
MySQL Verification Team
Thank you for the bug report. Could you please provide a dump file for to insert data to the tables? I was unable to repeat with the tables empty. Thanks in advance.
[16 May 2006 8:57]
Tordjman Yohan
I am inable to repeat too with new tables. Only with the current tables.... Can i give you them ?
[16 May 2006 15:00]
Tordjman Yohan
I put you the .tgz that contains the tables. I tryied with 5.0.19 : it's makes "Got error 134 when reading table './xxx/site'" i did too a myisamcheck -o ...
[16 May 2006 18:05]
MySQL Verification Team
Thank you for the feedback. I was able to repeat the crash with a binary
copy of the tables provided:
[New Thread 1099422640 (LWP 19797)]
[New Thread 1099623344 (LWP 19798)]
060516 14:44:42 [Note] /home/miguel/dbs/5.0/libexec/mysqld: ready for connections.
Version: '5.0.22-debug' socket: '/tmp/mysql.sock' port: 3306 Source distribution
[New Thread 1131862960 (LWP 19844)]
mysqld: my_seek.c:30: my_seek: Assertion `pos != (~(my_off_t) 0)' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 1131862960 (LWP 19844)]
0xffffe410 in __kernel_vsyscall ()
(gdb)
The table crashed is site and with a:
mysql> repair table site
-> ;
+----------+--------+----------+-------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+----------+--------+----------+-------------------------------------------------------+
| dbk.site | repair | info | Wrong block with wrong total length starting at 90308 |
| dbk.site | repair | warning | Number of rows changed from 1059 to 1058 |
| dbk.site | repair | status | OK |
+----------+--------+----------+-------------------------------------------------------+
3 rows in set (0.05 sec)
mysql> select distinct(id),url from site,idm_idc where idu!=363 and id!=0 and b=2 and
-> credits>0 and idm=id and ( idc=19 or idc=18 or idc=17 ) order by id;
+------+-----------------------------------------------------------+
| id | url |
+------+-----------------------------------------------------------+
| 471 | http://ddacost.carrefourpro.com/site/index.html |
| 526 | http://tilt85.free.fr/index3.php |
| 653 | http://money-invest.com/forum |
<cut>
The sever doesn't crash anymore. Could you please change the
Sypnosis that server crash with a crashed table and also explain
how that table got corrupted.
Thanks in advance.
[16 May 2006 18:13]
Tordjman Yohan
I did a myisamcheck -o on this tables. I think that i did'nt do a flush-tables. Test with the files in "toto.tgz" mysqlcheck from 5.0.22 says nothing but the myisamcheck from 5.0.19 (the one i did) says that the table is corrupted... Maybe they are corrupted, but so, why mysqlcheck says nothing & why mysqld crashes... ?!? :-) Thanks you for your help
[15 Jun 2006 15:08]
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/7708
[28 Jun 2006 12:50]
Ingo Strüwing
Second review done by Sergey Vojtovich. I need to change the changeset comments and MY_FILEPOS_ERROR.
[28 Jun 2006 14:07]
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/8420
[29 Jun 2006 12:08]
Ingo Strüwing
Pushed to mysql-5.0-engines.
[6 Jul 2006 13:49]
Ingo Strüwing
Pushed to mysql-5.1-engines.
[8 Jul 2006 19:10]
Ingo Strüwing
A corrupt table with dynamic record format can crash the
server when trying to select from it.
I fixed the crash that resulted from the particular type
of corruption that has been reported for this bug.
Pushed to 5.1.12 and 5.0.24 and 4.1.21.
[11 Jul 2006 9:12]
MC Brown
Added to the 4.1, 5.0 and 5.1 changelog: Using <literal>SELECT</literal> on a corrupt table using the dynamic record format can cause a server crash. (Bug #19835)
[13 Jul 2006 3:32]
Paul DuBois
5.0.x fix went to 5.0.25 instead.
[9 Oct 2006 2:35]
Jon Stephens
Updated changelog entries per Support request (JamesD).
