Bug #71768 | debug assert during InnoDB secondary index access | ||
---|---|---|---|
Submitted: | 19 Feb 2014 8:43 | Modified: | 9 Mar 2018 13:24 |
Reporter: | Seppo Jaakola | Email Updates: | |
Status: | No Feedback | Impact on me: | |
Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S3 (Non-critical) |
Version: | 5.5.36 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[19 Feb 2014 8:43]
Seppo Jaakola
[11 Mar 2014 9:00]
HongXiang Jiang
I also got this problem when I use sysbench(oltp) to do a test on the debug version of mysql-5.5.36, the backtrace like blew: #0 __pthread_kill (threadid=<optimized out>, signo=<optimized out>, signo@entry=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63 #1 0x00000000008394c8 in my_write_core (sig=6) at /home/root/trunk/mysql-5.5.30/mysys/stacktrace.c:433 #2 0x000000000070a1c0 in handle_fatal_signal (sig=6) at /home/root/trunk/mysql-5.5.30/sql/signal_handler.cc:247 #3 <signal handler called> #4 0x00007f4caa6c9475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #5 0x00007f4caa6cc6f0 in *__GI_abort () at abort.c:92 #6 0x00000000008954a9 in row_sel_store_mysql_rec (mysql_rec=mysql_rec@entry=0x7f4c07449410 "\377y\177<", prebuilt=prebuilt@entry=0x7f4c07459078, rec=rec@entry=0x7f4c4b3d6ff7 "", rec_clust=rec_clust@entry=0, offsets=0x7f4c48d79230) at /home/root/trunk/mysql-5.5.30/storage/innobase/row/row0sel.c:2722 #7 0x000000000089a597 in row_search_for_mysql (buf=0x7f4c07449410 "\377y\177<", mode=2, prebuilt=0x7f4c07459078, match_mode=1, direction=0) at /home/root/trunk/mysql-5.5.30/storage/innobase/row/row0sel.c:3699 #8 0x000000000085e65e in ha_innobase::index_read (this=0x7f4c07447010, buf=0x7f4c07449410 "\377y\177<", key_ptr=<optimized out>, key_len=4, find_flag=<optimized out>) at /home/root/trunk/mysql-5.5.30/storage/innobase/handler/ha_innodb.cc:6125 #9 0x000000000071385b in handler::index_read_map (this=0x7f4c07447010, buf=0x7f4c07449410 "\377y\177<", key=0x7f4c01422278 "\245\016=", keypart_map=<optimized out>, find_flag=HA_READ_KEY_EXACT) at /home/root/trunk/mysql-5.5.30/sql/handler.h:1919 #10 0x000000000070a7ec in handler::index_read_idx_map (this=0x7f4c07447010, buf=0x7f4c07449410 "\377y\177<", index=<optimized out>, key=0x7f4c01422278 "\245\016=", keypart_map=1, find_flag=HA_READ_KEY_EXACT) at /home/root/trunk/mysql-5.5.30/sql/handler.cc:5038 #11 0x00000000006266f1 in join_read_const (tab=tab@entry=0x7f4c01421da8) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:12290 #12 0x000000000062697b in join_read_const_table (tab=tab@entry=0x7f4c01421da8, pos=pos@entry=0x7f4c014750a0) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:12192 #13 0x000000000062ac26 in make_join_statistics (join=join@entry=0x7f4c01475010, tables_arg=0x7f4c01421210, conds=0x7f4c01421b98, keyuse_array=keyuse_array@entry=0x7f4c014765c8) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:3002 #14 0x000000000062e179 in JOIN::optimize (this=this@entry=0x7f4c01475010) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:1058 #15 0x00000000006315b1 in mysql_select (thd=thd@entry=0x7f4c3f3d6000, rref_pointer_array=rref_pointer_array@entry=0x7f4c3f3d8be0, tables=0x7f4c01421210, wild_num=0, fields=..., conds=<optimized out>, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=select_options@entry=2148797184, result=result@entry=0x7f4c01421ac8, unit=unit@entry=0x7f4c3f3d83e8, select_lex=select_lex@entry=0x7f4c3f3d8a08) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:2591 #16 0x0000000000637583 in handle_select (thd=0x7f4c3f3d6000, lex=0x7f4c3f3d8338, result=0x7f4c01421ac8, setup_tables_done_option=<optimized out>) at /home/root/trunk/mysql-5.5.30/sql/sql_select.cc:298 #17 0x00000000005ea614 in execute_sqlcom_select (thd=thd@entry=0x7f4c3f3d6000, all_tables=0x7f4c01421210) at /home/root/trunk/mysql-5.5.30/sql/sql_parse.cc:4876 #18 0x00000000005f0b96 in mysql_execute_command (thd=thd@entry=0x7f4c3f3d6000) at /home/root/trunk/mysql-5.5.30/sql/sql_parse.cc:2246 #19 0x00000000005f7bb6 in mysql_parse (thd=thd@entry=0x7f4c3f3d6000, rawbuf=<optimized out>, length=38, parser_state=parser_state@entry=0x7f4c48d7b6f0) at /home/root/trunk/mysql-5.5.30/sql/sql_parse.cc:5918 ---Type <return> to continue, or q <return> to quit--- #20 0x00000000005f8618 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f4c3f3d6000, packet=packet@entry=0x7f4c3f3da001 "SELECT c FROM sbtest1 WHERE id=4001445", packet_length=packet_length@entry=38) at /home/root/trunk/mysql-5.5.30/sql/sql_parse.cc:1108 #21 0x00000000005f9b71 in do_command (thd=0x7f4c3f3d6000) at /home/root/trunk/mysql-5.5.30/sql/sql_parse.cc:833 #22 0x00000000006a1eb2 in do_handle_one_connection (thd_arg=thd_arg@entry=0x7f4c3f3d6000) at /home/root/trunk/mysql-5.5.30/sql/sql_connect.cc:935 #23 0x00000000006a1f83 in handle_one_connection (arg=0x7f4c3f3d6000) at /home/root/trunk/mysql-5.5.30/sql/sql_connect.cc:849 #24 0x00007f4cab3ebb50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #25 0x00007f4caa771a7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #26 0x0000000000000000 in ?? () From the backtrace, you can see that a select(SELECT c FROM sbtest1 WHERE id=4001445) cause this problem. Then I use mysqlbinlog to find what happens on the record with id=4001445, last sql like blew: DELETE FROM sbtest1 WHERE id=4001445 INSERT INTO sbtest1 (id, k, c, pad) VALUES (4001445, 3966540, '36190505929-84866323743-19386592756-45157300342-95221964258-39194550156-39982223010-33274356149-97729777598-94780230128', '94043513913-76045436617-36300622759-63185209519-77295099218') after doing above, a new record with id=4001445 inserted, but the select failed, cause this problem.
[9 Feb 2018 13:24]
MySQL Verification Team
Hi, Thank you for your bug report. Truthfully, we have never seen a backtrace like this one. Hence , we need a fully repeatable test case in order to be able to verify the bug. Hence, dump of all tables involved in this crash, plus the statement that produced the error. You should also know that this kind of error can occur due to hardware errors or due to the temporary glitches in the RAM modules. If you use ECC DDR4 RAM modules, two bits checking one bit correcting, with some high quality RAID or SSD, then that is not your problem. In order to find the command that produced the crash, do note that it is happening in a SELECT query with a join. If you do not succeed in getting us the data that we require in order to verify the bug, please consider running a debug binary and setting the OS and MySQL server so that a core file is produced. If you manage to repeat the crash with that join and you obtain a core file, please, let us know.
[10 Mar 2018 1: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".
[10 Mar 2018 6:08]
MySQL Verification Team
These are all fixed. Consider a newer version of MySQL. Bug 14668683 - ASSERT REC_GET_DELETED_FLAG(REC, PAGE_IS_COMP(PAGE)) Bug 11765588 - UT_AD ASSERT REC_GET_DELETED_FLAG(REC, PAGE_IS_COMP(PAGE)) Bug 14636528 - INNODB CHANGE BUFFERING IS NOT ENTIRELY CRASH-SAFE