Bug #73318 Access to table, compressed by myisampack leads to assertion
Submitted: 17 Jul 2014 22:03
Reporter: Sveta Smirnova Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: MyISAM storage engine Severity:S3 (Non-critical)
Version:5.6.21 OS:Any
Assigned to: CPU Architecture:Any

[17 Jul 2014 22:03] Sveta Smirnova
Description:
Access to table, compressed by myisampack leads to assertion "mysys/my_malloc.c:87: my_realloc: Assertion `size > 0' failed."

Found when tried to repeat Bug #72497

Only debug version of the server affected.

How to repeat:
create table SomeTable(f1 int);
CREATE TABLE test_1 LIKE SomeTable;
insert into SomeTable values(1);
insert into SomeTable select * from SomeTable;
...
insert into SomeTable select * from SomeTable;
INSERT INTO test_1 SELECT * FROM SomeTable LIMIT 1000;

$myisampack  var/mysqld.1/data/test/test_1
Compressing var/mysqld.1/data/test/test_1.MYD: (1000 records)
- Calculating statistics
- Compressing file
84.94%     
$myisamchk -rq --sort-index --analyze var/mysqld.1/data/test/test_1.MYI
myisamchk: /home/sveta/src/mysql-5.6/mysys/my_malloc.c:87: my_realloc: Assertion `size > 0' failed.
Aborted (core dumped)

If you connect to a server and access same table it crashes with error:

Version: '5.6.21-debug-log'  socket: '/home/sveta/src/mysql-5.6/mysql-test/var/tmp/mysqld.1.sock'  port: 13000  Source distribution
mysqld: /home/sveta/src/mysql-5.6/mysys/my_malloc.c:87: my_realloc: Assertion `size > 0' failed.
20:49:52 UTC - mysqld got signal 6 ; 
...
stack_bottom = 7ffdec6f6de0 thread_stack 0x40000
/home/sveta/src/mysql-5.6/sql/mysqld(my_print_stacktrace+0x35)[0xac4314]
/home/sveta/src/mysql-5.6/sql/mysqld(handle_fatal_signal+0x3f3)[0x735143]
/lib64/libpthread.so.0[0x38f3e0f710]
/lib64/libc.so.6(gsignal+0x35)[0x38f3232925]
/lib64/libc.so.6(abort+0x175)[0x38f3234105]
/lib64/libc.so.6[0x38f322ba4e]
/lib64/libc.so.6(__assert_perror_fail+0x0)[0x38f322bb10]
/home/sveta/src/mysql-5.6/sql/mysqld(my_realloc+0xa5)[0xabbba8]
/home/sveta/src/mysql-5.6/sql/mysqld(_mi_read_pack_info+0xa4c)[0xe45f81]
/home/sveta/src/mysql-5.6/sql/mysqld(mi_open+0x1ead)[0xe3feed]
/home/sveta/src/mysql-5.6/sql/mysqld(_ZN9ha_myisam4openEPKcij+0x57)[0xe124af]
/home/sveta/src/mysql-5.6/sql/mysqld(_ZN7handler7ha_openEP5TABLEPKcii+0x1b5)[0x6453b1]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z21open_table_from_shareP3THDP11TABLE_SHAREPKcjjjP5TABLEb+0xc62)[0x8aa294]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z10open_tableP3THDP10TABLE_LISTP18Open_table_context+0x1042)[0x777bde]
/home/sveta/src/mysql-5.6/sql/mysqld[0x77a2c2]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z11open_tablesP3THDPP10TABLE_LISTPjjP19Prelocking_strategy+0x338)[0x77afba]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z20open_and_lock_tablesP3THDP10TABLE_LISTbjP19Prelocking_strategy+0xb7)[0x77bee1]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z20open_and_lock_tablesP3THDP10TABLE_LISTbj+0x43)[0x76d811]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z10mysql_loadP3THDP12sql_exchangeP10TABLE_LISTR4ListI4ItemES8_S8_15enum_duplicatesbb+0x264)[0x9b90b8]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z21mysql_execute_commandP3THD+0x39cd)[0x7e8d6d]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x421)[0x7ef902]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0xc1e)[0x7e3098]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z10do_commandP3THD+0x33e)[0x7e2227]
/home/sveta/src/mysql-5.6/sql/mysqld(_Z24do_handle_one_connectionP3THD+0x1b6)[0x7a84e1]
/home/sveta/src/mysql-5.6/sql/mysqld(handle_one_connection+0x33)[0x7a7ff7]
/home/sveta/src/mysql-5.6/sql/mysqld(pfs_spawn_thread+0x159)[0xdf3af0]
/lib64/libpthread.so.0[0x38f3e079d1]
/lib64/libc.so.6(clone+0x6d)[0x38f32e8b6d]