[MDEV-5147] crash with "is an invalid pointer" in mariadb since 5.5.32 (but not in any oracle version) Created: 2013-10-17 Updated: 2013-11-06 Resolved: 2013-11-06 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.0.4, 5.3.12, 5.5.33a |
| Fix Version/s: | 10.0.5, 5.5.34, 5.3.13 |
| Type: | Bug | Priority: | Major |
| Reporter: | naox | Assignee: | Oleksandr Byelkin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
centos x64 |
||
| Attachments: |
|
| Description |
|
I've recently upgraded from mariadb 5.5.29 to 5.5.33a on many servers. There are no problem except one server (out of ~15) that keeps crashing (every 5-20 minutes). I've tested on oracle mysql 5.5.34 (with same server) and it does not crash with it. It is server provided to hosting users with about 75GB od data on innodb and myisam. Also server stopps crashing when I switch back to mariadb 5.5.29. I use precompiled binaries of mariadb but I also compiled 5.5.33a on my system and same issue was occuring there.
Now i compared that "Connection ID (thread ID): 2250" with general query log and server crashes always after this sequence of queries:
|
| Comments |
| Comment by Elena Stepanova [ 2013-10-17 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, Would you be able to provide a database dump? If you cannot include data due to privacy concerns, then at least the table/procedure structures (if you can give us a full dump with the data, and if it's not too big, it would be even better). Also, please note that the 5th line in your log fragment seems to be wrong – it's the one that starts with ' )' – was it really a synax error on the client side, or was it a copy-paste problem? Thanks | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by naox [ 2013-10-18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It seems is was an error in copy/paste. I've pasted again those queries (in original post). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by naox [ 2013-10-18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've tested mariadb 5.5.29-5.5.33a. Bug was introduced in mariadb version 5.5.32 (until 5.5.31 is fine, every version after it is crashing). Someone might want to review changes in 5.5.32 For reference I've tested oracle mysql 5.5.32, 5.5.33, 5.5.34 and it is not crashing. That means that bug was not backported from 5.5.32 and fixed in .33 by oracle. It seems that this is something mariadb specific introduced at 5.5.32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-10-18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi, I understand that it's reproducible on your side, but we still need the structures of participating tables and stored procedures to reproduce it locally, If you can't do a dump of the structures, output of separate SHOW commands will also do. Thanks. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by naox [ 2013-10-18 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Your MariaDB connection id is 3 MariaDB [user_futsal]> CALL get_round_table_09(128,1); ERROR 2013 (HY000): Lost connection to MySQL server during query MariaDB [user_futsal]> CALL get_round_table_09(120,1); Query OK, 0 rows affected (0.00 sec) Your MySQL connection id is 643115 MySQL [user_futsal]> CALL get_round_table_09(128,1); When I truncate all tables in database result of this procedure is also obviously empty so no crash. This is connected somehow to data in database. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-10-19 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
>> When I truncate all tables in database result of this procedure is also obviously empty so no crash. This is connected somehow to data in database. It's understandable. Please still provide the description of the structures if you can, and whatever you can share about the volume of data, index distribution etc. (SHOW CREATE TABLE, SHOW INDEX, SHOW TABLE STATUS, SHOW CREATE PROCEDURE). We will try to populate the structures with the artificial data. You can obfuscate column/index names if even they are private. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by naox [ 2013-10-19 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1) create procedure
2) populate temporary table and run procedure twice
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by naox [ 2013-10-19 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
attached files with above code (in case utf8 encoding on one record is relevant) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-10-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks a lot for the test case. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-10-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is a somewhat smaller test case based on the original one (but please also check the original one after fixing): DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 ( points double ) ENGINE=MyISAM; INSERT INTO t1 VALUES (0),(3); CREATE TABLE t2 AS SELECT points FROM t1; UPDATE t1 trt, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-11-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The bug was fixed along with |