Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Duplicate
-
10.5, 10.6, 10.7(EOL)
-
None
Description
With the provided test case, the failure is reproducible on 10.5+, including older versions of 10.5, but not reproducible on 10.4 – neither now nor before MDEV-21446 fix.
innodb_stats_persistent doesn't seem to make a difference, it fails either way, but I'm keeping it for (hopefully) better stability.
--source include/have_innodb.inc
|
|
SET @stats.save= @@innodb_stats_persistent; |
SET global innodb_stats_persistent=on; |
|
CREATE TABLE t1 ( |
id int, |
i int, |
c char(32), |
PRIMARY KEY (id), |
UNIQUE KEY (id), |
KEY (c) |
) ENGINE=InnoDB
|
;
|
INSERT INTO t1 values (1,8908081,'London'),(2,12506468,'Moscow'),(3,542599,'Edinburgh'),(4,NULL,'Zagreb'); |
|
ANALYZE TABLE t1; |
|
CREATE TABLE t2 (f INT); |
INSERT INTO t2 VALUES (100000),(200000); |
|
SELECT * FROM t1 AS outer_t1 WHERE i NOT IN ( SELECT id FROM t1 WHERE i IN ( SELECT f FROM t2 WHERE f <= outer_t1.i ) AND c > 'U' ); |
|
# Cleanup
|
DROP TABLE t1, t2; |
SET global innodb_stats_persistent= @stats.save; |
10.5 2776635c |
mariadbd: /data/src/10.5/storage/innobase/row/row0sel.cc:4029: check_result_t row_search_idx_cond_check(byte*, row_prebuilt_t*, const rec_t*, const rec_offs*): Assertion `!prebuilt->index->is_primary()' failed.
|
211217 2:08:56 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f1fb3640f36 in __GI___assert_fail (assertion=0x56128fb47790 "!prebuilt->index->is_primary()", file=0x56128fb45b50 "/data/src/10.5/storage/innobase/row/row0sel.cc", line=4029, function=0x56128fb47730 "check_result_t row_search_idx_cond_check(byte*, row_prebuilt_t*, const rec_t*, const rec_offs*)") at assert.c:101
|
#8 0x000056128f3d5523 in row_search_idx_cond_check (mysql_rec=0x7f1f7806b478 "\371\001", prebuilt=0x7f1f7806c5a8, rec=0x7f1fad03807e "\200", offsets=0x7f1fac89a1e0) at /data/src/10.5/storage/innobase/row/row0sel.cc:4029
|
#9 0x000056128f3d9793 in row_search_mvcc (buf=0x7f1f7806b478 "\371\001", mode=PAGE_CUR_G, prebuilt=0x7f1f7806c5a8, match_mode=0, direction=0) at /data/src/10.5/storage/innobase/row/row0sel.cc:5324
|
#10 0x000056128f1d2134 in ha_innobase::index_read (this=0x7f1f7806b8e0, buf=0x7f1f7806b478 "\371\001", key_ptr=0x0, key_len=0, find_flag=HA_READ_AFTER_KEY) at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:8838
|
#11 0x000056128f1d315c in ha_innobase::index_first (this=0x7f1f7806b8e0, buf=0x7f1f7806b478 "\371\001") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:9199
|
#12 0x000056128f1d334c in ha_innobase::rnd_next (this=0x7f1f7806b8e0, buf=0x7f1f7806b478 "\371\001") at /data/src/10.5/storage/innobase/handler/ha_innodb.cc:9292
|
#13 0x000056128ed8de2c in handler::ha_rnd_next (this=0x7f1f7806b8e0, buf=0x7f1f7806b478 "\371\001") at /data/src/10.5/sql/handler.cc:3080
|
#14 0x000056128ef565dd in rr_sequential (info=0x7f1f78071128) at /data/src/10.5/sql/records.cc:519
|
#15 0x000056128e9595af in READ_RECORD::read_record (this=0x7f1f78071128) at /data/src/10.5/sql/records.h:80
|
#16 0x000056128ea9bd35 in read_first_record_seq (tab=0x7f1f78071060) at /data/src/10.5/sql/sql_select.cc:21775
|
#17 0x000056128ea99b39 in sub_select (join=0x7f1f780781f0, join_tab=0x7f1f78071060, end_of_records=false) at /data/src/10.5/sql/sql_select.cc:20877
|
#18 0x000056128ea99032 in do_select (join=0x7f1f780781f0, procedure=0x0) at /data/src/10.5/sql/sql_select.cc:20414
|
#19 0x000056128ea6c3b1 in JOIN::exec_inner (this=0x7f1f780781f0) at /data/src/10.5/sql/sql_select.cc:4516
|
#20 0x000056128ea6b4af in JOIN::exec (this=0x7f1f780781f0) at /data/src/10.5/sql/sql_select.cc:4296
|
#21 0x000056128ee84d8b in subselect_single_select_engine::exec (this=0x7f1f78019d78) at /data/src/10.5/sql/item_subselect.cc:4075
|
#22 0x000056128ee77847 in Item_subselect::exec (this=0x7f1f78019b30) at /data/src/10.5/sql/item_subselect.cc:836
|
#23 0x000056128ee77f2d in Item_in_subselect::exec (this=0x7f1f78019b30) at /data/src/10.5/sql/item_subselect.cc:1016
|
#24 0x000056128ee7be98 in Item_in_subselect::val_bool (this=0x7f1f78019b30) at /data/src/10.5/sql/item_subselect.cc:1929
|
#25 0x000056128e8e1869 in Item::val_bool_result (this=0x7f1f78019b30) at /data/src/10.5/sql/item.h:1575
|
#26 0x000056128edd8fe1 in Item_in_optimizer::val_int (this=0x7f1f78078e98) at /data/src/10.5/sql/item_cmpfunc.cc:1638
|
#27 0x000056128e8e17d1 in Item::val_int_result (this=0x7f1f78078e98) at /data/src/10.5/sql/item.h:1571
|
#28 0x000056128edc6d51 in Item_cache_int::cache_value (this=0x7f1f7807e978) at /data/src/10.5/sql/item.cc:10053
|
#29 0x000056128edcfae0 in Item_cache_wrapper::cache (this=0x7f1f7807e8b0) at /data/src/10.5/sql/item.cc:8839
|
#30 0x000056128edc3b91 in Item_cache_wrapper::val_bool (this=0x7f1f7807e8b0) at /data/src/10.5/sql/item.cc:9025
|
#31 0x000056128edd3dd4 in Item_func_not::val_int (this=0x7f1f78019db8) at /data/src/10.5/sql/item_cmpfunc.cc:202
|
#32 0x000056128ea99fc1 in evaluate_join_record (join=0x7f1f7801a7e0, join_tab=0x7f1f7807a4a0, error=0) at /data/src/10.5/sql/sql_select.cc:20978
|
#33 0x000056128ea99d5e in sub_select (join=0x7f1f7801a7e0, join_tab=0x7f1f7807a4a0, end_of_records=false) at /data/src/10.5/sql/sql_select.cc:20919
|
#34 0x000056128ea99032 in do_select (join=0x7f1f7801a7e0, procedure=0x0) at /data/src/10.5/sql/sql_select.cc:20414
|
#35 0x000056128ea6c3b1 in JOIN::exec_inner (this=0x7f1f7801a7e0) at /data/src/10.5/sql/sql_select.cc:4516
|
#36 0x000056128ea6b4af in JOIN::exec (this=0x7f1f7801a7e0) at /data/src/10.5/sql/sql_select.cc:4296
|
#37 0x000056128ea6cd34 in mysql_select (thd=0x7f1f78000db8, tables=0x7f1f78015a90, fields=..., conds=0x7f1f78019db8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f1f7801a7b8, unit=0x7f1f78004f60, select_lex=0x7f1f78015468) at /data/src/10.5/sql/sql_select.cc:4773
|
#38 0x000056128ea5c587 in handle_select (thd=0x7f1f78000db8, lex=0x7f1f78004e98, result=0x7f1f7801a7b8, setup_tables_done_option=0) at /data/src/10.5/sql/sql_select.cc:444
|
#39 0x000056128ea1e257 in execute_sqlcom_select (thd=0x7f1f78000db8, all_tables=0x7f1f78015a90) at /data/src/10.5/sql/sql_parse.cc:6314
|
#40 0x000056128ea1553c in mysql_execute_command (thd=0x7f1f78000db8) at /data/src/10.5/sql/sql_parse.cc:4005
|
#41 0x000056128ea23106 in mysql_parse (thd=0x7f1f78000db8, rawbuf=0x7f1f78015300 "SELECT * FROM t1 AS outer_t1 WHERE i NOT IN ( SELECT id FROM t1 WHERE i IN ( SELECT f FROM t2 WHERE f <= outer_t1.i ) AND c > 'U' )", length=131, parser_state=0x7f1fac89c490, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:8100
|
#42 0x000056128ea0f073 in dispatch_command (command=COM_QUERY, thd=0x7f1f78000db8, packet=0x7f1f7800b5b9 "", packet_length=131, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:1891
|
#43 0x000056128ea0d865 in do_command (thd=0x7f1f78000db8) at /data/src/10.5/sql/sql_parse.cc:1370
|
#44 0x000056128ebbf3f0 in do_handle_one_connection (connect=0x56129307e1a8, put_in_cache=true) at /data/src/10.5/sql/sql_connect.cc:1418
|
#45 0x000056128ebbf0a3 in handle_one_connection (arg=0x561292f84d38) at /data/src/10.5/sql/sql_connect.cc:1312
|
#46 0x000056128f0e603f in pfs_spawn_thread (arg=0x56129307db78) at /data/src/10.5/storage/perfschema/pfs.cc:2201
|
#47 0x00007f1fb3b59609 in start_thread (arg=<optimized out>) at pthread_create.c:477
|
#48 0x00007f1fb372c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
EXPLAIN |
EXPLAIN EXTENDED SELECT * FROM t1 AS outer_t1 WHERE i NOT IN ( SELECT id FROM t1 WHERE i IN ( SELECT f FROM t2 WHERE f <= outer_t1.i ) AND c > 'U' ); |
id select_type table type possible_keys key key_len ref rows filtered Extra |
1 PRIMARY outer_t1 ALL NULL NULL NULL NULL 4 100.00 Using where |
2 DEPENDENT SUBQUERY t1 eq_ref|filter PRIMARY,id,c id|c 4|33 func 1 (25%) 25.00 Using where; Full scan on NULL key; Using rowid filter |
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; FirstMatch(t1); Using join buffer (flat, BNL join) |
Warnings:
|
Note 1276 Field or reference 'test.outer_t1.i' of SELECT #3 was resolved in SELECT #1 |
Note 1003 /* select#1 */ select `test`.`outer_t1`.`id` AS `id`,`test`.`outer_t1`.`i` AS `i`,`test`.`outer_t1`.`c` AS `c` from `test`.`t1` `outer_t1` where !<expr_cache><`test`.`outer_t1`.`i`>(<in_optimizer>(`test`.`outer_t1`.`i`,<exists>(/* select#2 */ select `test`.`t1`.`id` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t1`.`c` > 'U' and `test`.`t2`.`f` <= `test`.`outer_t1`.`i` and trigcond(<cache>(`test`.`outer_t1`.`i`) = `test`.`t1`.`id`) and `test`.`t2`.`f` = `test`.`t1`.`i`))) |
Attachments
Issue Links
- duplicates
-
MDEV-22846 Server crashes in handler_index_cond_check on SELECT
- Closed
- relates to
-
MDEV-27366 SIGSEGV in handler_index_cond_check on SELECT in connection with rowid_filter setting
- In Review