Bug #25092 | MySQL key list becomes corrupted on 64bit linux on drop index | ||
---|---|---|---|
Submitted: | 15 Dec 2006 12:20 | Modified: | 4 Jun 2007 13:44 |
Reporter: | Jan Lindström | Email Updates: | |
Status: | No Feedback | Impact on me: | |
Category: | MySQL Server | Severity: | S1 (Critical) |
Version: | 5.0 & 5.1 | OS: | Any (AMD Linux) |
Assigned to: | CPU Architecture: | Any |
[15 Dec 2006 12:20]
Jan Lindström
[16 Feb 2007 18:49]
Valeriy Kravchuk
Thank you for a problem report, and sorry for a delay with its processing. I can not get any problems with foreign keys, neither on 32-bit nor on 64-bit Linux with latest 5.0.36-BK: mysqldev@rh-x86-64:~/valeriy/dbs/5.0> bin/mysql -uroot --socket=/tmp/valeriy.so ck 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.0.36 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table fm (s1 int, s2 int) engine=innodb; ifm1 on fm (s1); create index ifm2 on fm (s1); drop index ifQuery OK, 0 rows affected (0.17 sec) mysql> create index ifm1 on fm (s1); m2 on fm;Query OK, 0 rows affected (0.17 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> create index ifm2 on fm (s1); Query OK, 0 rows affected (0.10 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> drop index ifm2 on fm; Query OK, 0 rows affected (0.18 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> create table tfk(c1 int, key(c1), foreign key k1(c1) references fm(s1)); Query OK, 0 rows affected (0.11 sec) mysql> exit Bye mysqldev@rh-x86-64:~/valeriy/dbs/5.0> uname -a Linux rh-x86-64.mysql.com 2.6.9-34.0.2.EL #1 Fri Jun 30 10:22:45 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux Any your ideas on how to demonstrate the result of corruption you suspected are greatly appreciated.
[22 Feb 2007 8:30]
Jan Lindström
Using mysql-5.0.34 l2x 32-bit and following simple test case: drop table if exists bug28_a, bug28_b cascade CREATE TABLE bug28_a ( a_id INT NOT NULL, PRIMARY KEY (a_id) ) engine=soliddb CREATE TABLE bug28_b ( b2_id INT NOT NULL, b_id INT NOT NULL, a_id INT NOT NULL, PRIMARY KEY (b_id), KEY b2_id_key (b2_id), FOREIGN KEY (a_id) REFERENCES bug28_a (a_id) ON UPDATE RESTRICT ON DELETE RESTRICT ) engine=soliddb DROP INDEX b2_id_key on bug28_b Now on ::create() we see: Breakpoint 1, ha_soliddb::create (this=0x96ea910, name=0x92ada3a8 "./test/#sql-c95_1.frm", table_arg=0x92ad98c0, create_info=0x92adb32c) at ha_soliddb.cc:11637 (gdb) c Breakpoint 2, solid_check_fkeys (thd=0x96d8ed8, table=0x92ad98c0, table_name=0x93226c8c "bug28_b", n_fkeys=0x92ad969c) at ha_soliddb.cc:10846 ( (gdb) p thd->lex->key_list.elements $7 = 4 List_iterator<Key> key_iterator(thd->lex->key_list); 0852 0853 *n_fkeys = 0; 0854 keys = thd->lex->key_list.elements; 0855 0856 while(i < keys) { 0857 key = key_iterator++; (gdb) p *key Cannot access memory at address 0x40 Thus key list contains 4 elements but the first element is already corrupted. Similar results can be obtained using innodb storage engine.
[4 May 2007 13:44]
Valeriy Kravchuk
Please, try to repeat with a newer versions, 5.0.37/5.0.40 and/or 5.1.17 and InnoDB. Inform about the results.
[4 Jun 2007 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".