| Bug #20422 | MySQL crashes with signal 11 on NOT IN(negative,positive) on UNSIGNED INT | ||
|---|---|---|---|
| Submitted: | 13 Jun 2006 9:49 | Modified: | 14 Jun 2006 9:39 |
| Reporter: | Wouter de Jong | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S2 (Serious) |
| Version: | 5.0.22 | OS: | Linux (Linux i386 / x86_64) |
| Assigned to: | CPU Architecture: | Any | |
[13 Jun 2006 9:49]
Wouter de Jong
[13 Jun 2006 9:53]
Wouter de Jong
backtrace of mysql crashing on NOT IN(negative,positive)
Attachment: mysql-backtrace.txt (text/plain), 3.17 KiB.
[13 Jun 2006 9:59]
Wouter de Jong
http://bugs.mysql.com/bug.php?id=16281 is a similar issue about MySQL 5.0 failing on tables created in 4.x ... this was fixed in 5.0.21, so hopefully this issue can get fixed too (soon :>)
[13 Jun 2006 17:03]
Tonci Grgin
Hi Wouter and thanks for your problem report. Sorry, I was unable to verify: MySQL 5.0.23 bk build FC5 x64 latest kernel on ADM64 Table was created on Suse linux running MySQL 4.1.23. and copied into "test" directory on FC5 server. I did notthing with table (no repair etc...). 060613 18:48:21 mysqld started 060613 18:48:21 InnoDB: Started; log sequence number 0 43655 060613 18:48:21 [Note] /var/lib/mysql/libexec/mysqld: ready for connections. Version: '5.0.23' socket: '/tmp/mysql.sock' port: 3307 Source distribution [root@FC5X64 mysql]# bin/mysql -uroot --port=3307 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 to server version: 5.0.23 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | testint | +----------------+ 1 row in set (0.00 sec) mysql> select * from testint; +----+ | id | +----+ | 1 | | 2 | +----+ 2 rows in set (0.00 sec) mysql> SELECT * FROM testint WHERE ID IN (1,2); +----+ | id | +----+ | 1 | | 2 | +----+ 2 rows in set (0.00 sec) mysql> SELECT * FROM testint WHERE ID IN (-1,2); +----+ | id | +----+ | 2 | +----+ 1 row in set (0.00 sec) mysql> SELECT * FROM testint WHERE ID IN (-1,1); +----+ | id | +----+ | 1 | +----+ 1 row in set (0.00 sec) mysql> SELECT ID FROM testint WHERE ID IN (-1,1); +----+ | ID | +----+ | 1 | +----+ 1 row in set (0.00 sec) mysql> SELECT ID FROM testint WHERE ID NOT IN (-1,1); +----+ | ID | +----+ | 2 | +----+ 1 row in set (0.00 sec) ... and so on...
[13 Jun 2006 17:55]
Wouter de Jong
Hi Tonci, You're right. It seems that I've simplified the reproduce table a bit too much accidently :( Could you try this table please ? mysql> CREATE TABLE test (id INT UNSIGNED NOT NULL PRIMARY KEY); Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO test (id) VALUES(1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO test (id) VALUES(2); Query OK, 1 row affected (0.00 sec) 'id' should be a PRIMARY KEY. I've just been able to reproduce this on a few machines running 4.1.20 -> 5.0.21 and 5.0.22 (All compiled --without-debug this time)
[14 Jun 2006 7:43]
Tonci Grgin
Hi Wouter. It seems this is fixed in 5.0.23 since I'm unable to repeat.
Suse 10.0:
mysql> select version();
+------------------+
| version() |
+------------------+
| 4.1.21-debug-log |
+------------------+
1 row in set (0.00 sec)
mysql> show create table testint\G
*************************** 1. row ***************************
Table: testint
Create Table: CREATE TABLE `testint` (
`id` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> select * from testint;
+----+
| id |
+----+
| 1 |
| 2 |
+----+
2 rows in set (0.00 sec)
Copy table files from Suse/MySQL 4.1.21 to FC5/MySQL 5.0.23
Fedora Core (2.6.16-1.2111_FC5)
I tested with client on FC5 and on WinXP SP2. Below is test from XinXP client.
C:\mysql507\bin>mysql -uroot -h10.192.192.7 --port=3307 test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.23
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT ID FROM testint WHERE ID NOT IN (-1,1);
+----+
| ID |
+----+
| 2 |
+----+
1 row in set (0.00 sec)
mysql>
Test with client on FC5:
[root@FC5X64 mysql]# bin/mysql -uroot --port=3307
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.23
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.23 |
+-----------+
1 row in set (0.01 sec)
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SELECT id FROM testint WHERE id NOT IN (-1,1);
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.01 sec)
mysql>
Server log from FC5 AMDx64:
060613 18:48:21 mysqld started
060613 18:48:21 InnoDB: Started; log sequence number 0 43655
060613 18:48:21 [Note] /var/lib/mysql/libexec/mysqld: ready for connections.
Version: '5.0.23' socket: '/tmp/mysql.sock' port: 3307 Source distribution
060613 18:54:23 [Note] /var/lib/mysql/libexec/mysqld: Normal shutdown
060613 18:54:23 InnoDB: Starting shutdown...
060613 18:54:25 InnoDB: Shutdown completed; log sequence number 0 43655
060613 18:54:25 [Note] /var/lib/mysql/libexec/mysqld: Shutdown complete
060613 18:54:25 mysqld ended
060614 09:23:19 mysqld started
060614 9:23:20 InnoDB: Started; log sequence number 0 43655
060614 9:23:20 [Note] /var/lib/mysql/libexec/mysqld: ready for connections.
Version: '5.0.23' socket: '/tmp/mysql.sock' port: 3307 Source distribution
060614 9:37:51 [Note] /var/lib/mysql/libexec/mysqld: Normal shutdown
060614 9:37:51 InnoDB: Starting shutdown...
060614 9:37:53 InnoDB: Shutdown completed; log sequence number 0 43655
060614 9:37:53 [Note] /var/lib/mysql/libexec/mysqld: Shutdown complete
060614 09:37:53 mysqld ended
[14 Jun 2006 9:18]
Wouter de Jong
Hi Tonci, I just downloaded and installed 5.0.23-bk, and it is fixed indeed. I just wonder... 'what' change fixed it ? :) Thanks for your efforts in looking into this :) PS. it would be so nice, if MySQL could provide nightly snapshots from BitKeeper tree so you don't need all the tools required to run BUILD/autorun.sh but simply can run ./configure :)
[14 Jun 2006 9:39]
Wouter de Jong
http://bugs.mysql.com/bug.php?id=19618 I guess the fix is from that, however I could only reproduce the above when using smallint, and not with bigint/int. Still weird my problem only happened on tables created on 4.x I'm happy it's fixed though :)
