[MDEV-20464] Signal 8 in row_search_with_covering_prefix with prefix_index_cluster_optimization Created: 2019-09-01  Updated: 2020-10-06  Resolved: 2020-09-01

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Virtual Columns
Affects Version/s: 10.2, 10.3, 10.4, 10.5
Fix Version/s: 10.2.35, 10.3.26, 10.4.16, 10.5.7

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
is duplicated by MDEV-23600 SIGFPE in row_search_with_covering_pr... Closed
Relates
relates to MDEV-20422 InnoDB: Failing assertion: field->pre... Closed

 Description   

The test case usually fails for me from the first attempt, but sometimes it misses the mark. Try again or run with --repeat=N if it doesn't fail right away.

--source include/have_innodb.inc
 
SET @prefix_index_cluster_optimization.save= @@global.innodb_prefix_index_cluster_optimization;
SET GLOBAL innodb_prefix_index_cluster_optimization= ON;
 
CREATE TABLE t1 (f1 INT, f2 INT AS (f1), f3 INT AS (f1), f4 INT AS (f1), KEY (f1,f2,f3)) ENGINE=InnoDB;
INSERT INTO t1 (f1) VALUES (NULL),(0);
SELECT f1, MAX(f3), COUNT(f4) FROM t1 GROUP BY f1;
 
# Cleanup
DROP TABLE t1;
SET GLOBAL innodb_prefix_index_cluster_optimization= @prefix_index_cluster_optimization.save;

10.2 14149d6c

190902  1:35:17 [ERROR] mysqld got signal 8 ;
 
#2  0x00005622bccf2cfb in handle_fatal_signal (sig=8) at /data/src/10.2/sql/signal_handler.cc:343
#3  <signal handler called>
#4  0x000055bc6d717118 in row_search_with_covering_prefix (prebuilt=0x7fdc9c074018, rec=0x7fdce3cd407e "", offsets=0x7fdce3701cc0) at /data/src/10.2/storage/innobase/row/row0sel.cc:4192
#5  0x000055bc6d719b9e in row_search_mvcc (buf=0x7fdc9c006640 "\377", mode=PAGE_CUR_G, prebuilt=0x7fdc9c074018, match_mode=0, direction=0) at /data/src/10.2/storage/innobase/row/row0sel.cc:5355
#6  0x000055bc6d5a7a31 in ha_innobase::index_read (this=0x7fdc9c00a5c8, buf=0x7fdc9c006640 "\377", key_ptr=0x0, key_len=0, find_flag=HA_READ_AFTER_KEY) at /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9471
#7  0x000055bc6d5a897c in ha_innobase::index_first (this=0x7fdc9c00a5c8, buf=0x7fdc9c006640 "\377") at /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9847
#8  0x000055bc6d39bb33 in handler::ha_index_first (this=0x7fdc9c00a5c8, buf=0x7fdc9c006640 "\377") at /data/src/10.2/sql/handler.cc:2802
#9  0x000055bc6d188ed5 in join_read_first (tab=0x7fdc9c014b38) at /data/src/10.2/sql/sql_select.cc:19820
#10 0x000055bc6d18690a in sub_select (join=0x7fdc9c0133e0, join_tab=0x7fdc9c014b38, end_of_records=false) at /data/src/10.2/sql/sql_select.cc:18828
#11 0x000055bc6d185ef3 in do_select (join=0x7fdc9c0133e0, procedure=0x0) at /data/src/10.2/sql/sql_select.cc:18375
#12 0x000055bc6d15fa3f in JOIN::exec_inner (this=0x7fdc9c0133e0) at /data/src/10.2/sql/sql_select.cc:3627
#13 0x000055bc6d15eefa in JOIN::exec (this=0x7fdc9c0133e0) at /data/src/10.2/sql/sql_select.cc:3422
#14 0x000055bc6d1600b0 in mysql_select (thd=0x7fdc9c000b00, tables=0x7fdc9c012b78, wild_num=0, fields=..., conds=0x0, og_num=1, order=0x0, group=0x7fdc9c0132b0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fdc9c0133c0, unit=0x7fdc9c004700, select_lex=0x7fdc9c004e40) at /data/src/10.2/sql/sql_select.cc:3822
#15 0x000055bc6d15431c in handle_select (thd=0x7fdc9c000b00, lex=0x7fdc9c004638, result=0x7fdc9c0133c0, setup_tables_done_option=0) at /data/src/10.2/sql/sql_select.cc:365
#16 0x000055bc6d11f4e5 in execute_sqlcom_select (thd=0x7fdc9c000b00, all_tables=0x7fdc9c012b78) at /data/src/10.2/sql/sql_parse.cc:6226
#17 0x000055bc6d115ec6 in mysql_execute_command (thd=0x7fdc9c000b00) at /data/src/10.2/sql/sql_parse.cc:3533
#18 0x000055bc6d123398 in mysql_parse (thd=0x7fdc9c000b00, rawbuf=0x7fdc9c012468 "SELECT f1, MAX(f3), COUNT(f4) FROM t1 GROUP BY f1", length=49, parser_state=0x7fdce3704200, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7760
#19 0x000055bc6d1116a1 in dispatch_command (command=COM_QUERY, thd=0x7fdc9c000b00, packet=0x7fdc9c0967c1 "", packet_length=49, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1832
#20 0x000055bc6d10fff5 in do_command (thd=0x7fdc9c000b00) at /data/src/10.2/sql/sql_parse.cc:1385
#21 0x000055bc6d264dfb in do_handle_one_connection (connect=0x55bc6f5dd110) at /data/src/10.2/sql/sql_connect.cc:1336
#22 0x000055bc6d264b66 in handle_one_connection (arg=0x55bc6f5dd110) at /data/src/10.2/sql/sql_connect.cc:1241
#23 0x000055bc6da94b46 in pfs_spawn_thread (arg=0x55bc6f5f8010) at /data/src/10.2/storage/perfschema/pfs.cc:1862
#24 0x00007fdceec584a4 in start_thread (arg=0x7fdce3705700) at pthread_create.c:456
#25 0x00007fdced1a0d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

10.2 14149d6c ASAN

==8050==ERROR: AddressSanitizer: FPE on unknown address 0x5581a6f17377 (pc 0x5581a6f17377 bp 0x7ff0ef20e930 sp 0x7ff0ef20e8c0 T27)
    #0 0x5581a6f17376 in row_search_with_covering_prefix /data/src/10.2/storage/innobase/row/row0sel.cc:4192
    #1 0x5581a6f1ba0e in row_search_mvcc(unsigned char*, page_cur_mode_t, row_prebuilt_t*, unsigned long, unsigned long) /data/src/10.2/storage/innobase/row/row0sel.cc:5355
    #2 0x5581a6c3bcad in ha_innobase::index_read(unsigned char*, unsigned char const*, unsigned int, ha_rkey_function) /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9471
    #3 0x5581a6c3ece5 in ha_innobase::index_first(unsigned char*) /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9847
    #4 0x5581a674ac0d in handler::ha_index_first(unsigned char*) /data/src/10.2/sql/handler.cc:2802
    #5 0x5581a6272642 in join_read_first /data/src/10.2/sql/sql_select.cc:19820
    #6 0x5581a626b26c in sub_select(JOIN*, st_join_table*, bool) /data/src/10.2/sql/sql_select.cc:18828
    #7 0x5581a626983f in do_select /data/src/10.2/sql/sql_select.cc:18375
    #8 0x5581a620a222 in JOIN::exec_inner() /data/src/10.2/sql/sql_select.cc:3627
    #9 0x5581a6207fef in JOIN::exec() /data/src/10.2/sql/sql_select.cc:3422
    #10 0x5581a620b265 in mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/src/10.2/sql/sql_select.cc:3822
    #11 0x5581a61ea5b9 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.2/sql/sql_select.cc:365
    #12 0x5581a61703a2 in execute_sqlcom_select /data/src/10.2/sql/sql_parse.cc:6226
    #13 0x5581a615e6f7 in mysql_execute_command(THD*) /data/src/10.2/sql/sql_parse.cc:3533
    #14 0x5581a6178ce2 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.2/sql/sql_parse.cc:7760
    #15 0x5581a6154ee2 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.2/sql/sql_parse.cc:1832
    #16 0x5581a6151ef8 in do_command(THD*) /data/src/10.2/sql/sql_parse.cc:1385
    #17 0x5581a648aac1 in do_handle_one_connection(CONNECT*) /data/src/10.2/sql/sql_connect.cc:1336
    #18 0x5581a648a491 in handle_one_connection /data/src/10.2/sql/sql_connect.cc:1241
    #19 0x5581a76bc1f8 in pfs_spawn_thread /data/src/10.2/storage/perfschema/pfs.cc:1862
    #20 0x7ff106a604a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
    #21 0x7ff104fa8d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
 
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE /data/src/10.2/storage/innobase/row/row0sel.cc:4192 in row_search_with_covering_prefix
Thread T27 created by T0 here:
    #0 0x7ff106ca6f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
    #1 0x5581a76bc634 in spawn_thread_v1 /data/src/10.2/storage/perfschema/pfs.cc:1912
    #2 0x5581a5f5a4d2 in inline_mysql_thread_create /data/src/10.2/include/mysql/psi/mysql_thread.h:1239
    #3 0x5581a5f6eace in create_thread_to_handle_connection(CONNECT*) /data/src/10.2/sql/mysqld.cc:6508
    #4 0x5581a5f6f1b1 in create_new_thread /data/src/10.2/sql/mysqld.cc:6578
    #5 0x5581a5f701c9 in handle_connections_sockets() /data/src/10.2/sql/mysqld.cc:6853
    #6 0x5581a5f6e039 in mysqld_main(int, char**) /data/src/10.2/sql/mysqld.cc:6127
    #7 0x5581a5f58e5f in main /data/src/10.2/sql/main.cc:25
    #8 0x7ff104ee02e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
 
==8050==ABORTING

Non-debug build crashes the same way.
10.5 is also affected.



 Comments   
Comment by Marko Mäkelä [ 2020-08-27 ]

I posted some analysis and an initial fix to MDEV-23600, which seems to duplicate this report.

Generated at Thu Feb 08 08:59:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.