Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Duplicate
-
11.3.0
-
None
-
Ubuntu 20.04
Description
Run these queries in release build:
CREATE TABLE x ( x BOOLEAN UNIQUE ) ;
INSERT INTO x ( x ) VALUES ( 1 ) ;
UPDATE x SET x = 1 WHERE x = 1 ;
INSERT INTO x SELECT x * 1 + x FROM x WHERE x IN ( 1 , 1 ) ;
SELECT x * 1 + x FROM x WHERE CASE WHEN ( SELECT x AS x WHERE 1 > x GROUP BY x IS NULL ) LIKE x + x % x - 1 THEN ( 1 * x ) ELSE ( x >= 1.000000 OR x < 1 ) AND x IN ( 1 , x ) END IN ( WITH x ( x ) AS ( SELECT x + ( WITH x ( x ) AS ( SELECT 1 UNION SELECT x + 1 FROM x ) SELECT 1 EXCEPT SELECT x + 1 FROM ( SELECT ( SELECT * FROM x EXCEPT SELECT * FROM x ) BETWEEN ( SELECT x FROM x WHERE x = 1 AND x < 1 GROUP BY - 'x' >= x ) AND 1 FROM x UNION SELECT x FROM x ) AS x ) FROM x ) SELECT x FROM x AS x GROUP BY 'x' , x IN ( 1 , 1 , 1 ) , x , x ) ORDER BY ( 1 < x AND x = 1 ) ;
Will trigger Segmentation fault.
GDB info:
Thread 16 "mariadbd" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd242e300 (LWP 2543)]
0x0000000000ab5baa in st_select_lex_unit::save_union_explain (this=0x6290000b4238,
output=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_lex.cc:5998
5998 if (output->get_union(first->select_number))
(gdb) p first
$67 = (SELECT_LEX *) 0x0
#0 0x0000000000ab5baa in st_select_lex_unit::save_union_explain (this=0x6290000b9238, output=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_lex.cc:5998
#1 0x0000000000df0584 in st_select_lex_unit::exec_inner (this=0x6290000b9238) at /home/wx/mariadb-11.3.0/sql/sql_union.cc:2315
#2 0x00000000015d8bb5 in subselect_union_engine::exec (this=<optimized out>) at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:4187
#3 0x00000000015b3edc in Item_subselect::exec (this=0x6290000c42e0) at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:812
#4 0x00000000015b9773 in Item_singlerow_subselect::val_int (this=0x6290000c42e0) at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:1462
#5 0x00000000014620a4 in Item_func_plus::int_op (this=0x6290000c44c0) at /home/wx/mariadb-11.3.0/sql/item_func.cc:1117
#6 0x000000000138ddc2 in Item_direct_ref::val_int (this=0x62f000003808) at /home/wx/mariadb-11.3.0/sql/item.cc:8680
#7 Item_direct_view_ref::val_int (this=0x62f000003808) at /home/wx/mariadb-11.3.0/sql/item.h:6141
#8 0x00000000013ae2e1 in Arg_comparator::compare_int_signed (this=0x62f000004788) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:947
#9 0x00000000013b5ea2 in Arg_comparator::compare (this=<optimized out>) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:104
#10 Item_func_eq::val_int (this=<optimized out>) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:1780
#11 0x0000000000f99b40 in SQL_SELECT::skip_record (this=<optimized out>, thd=0x62b00016c218) at /home/wx/mariadb-11.3.0/sql/opt_range.h:1914
#12 JOIN_CACHE::check_match (this=this@entry=0x62f000008b50, rec_ptr=rec_ptr@entry=0x6070000d69b9 "") at /home/wx/mariadb-11.3.0/sql/sql_join_cache.cc:2560
#13 0x0000000000f8f7d9 in JOIN_CACHE::generate_full_extensions (this=this@entry=0x62f000008b50, rec_ptr=rec_ptr@entry=0x6070000d69b9 "") at /home/wx/mariadb-11.3.0/sql/sql_join_cache.cc:2503
#14 0x0000000000f8f322 in JOIN_CACHE::join_matching_records (this=0x62f000008b50, skip_last=false) at /home/wx/mariadb-11.3.0/sql/sql_join_cache.cc:2403
#15 0x0000000000f8e695 in JOIN_CACHE::join_records (this=0x62f000008b50, skip_last=false) at /home/wx/mariadb-11.3.0/sql/sql_join_cache.cc:2158
#16 0x0000000000c9da17 in sub_select_cache (join=0x62d0000e7b00, join_tab=0x62f000007a90, end_of_records=false) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23192
#17 0x0000000000c4536c in do_select (join=0x62d0000e7b00, procedure=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:22963
#18 JOIN::exec_inner (this=0x62d0000e7b00) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4941
#19 0x0000000000c428e9 in JOIN::exec (this=this@entry=0x62d0000e7b00) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4718
#20 0x0000000000be5128 in mysql_select (thd=<optimized out>, thd@entry=0x62b00016c218, tables=<optimized out>, fields=..., conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=0x0, having=0x0, proc_param=0x0, select_options=<optimized out>, result=0x62d0000e7ad0, unit=0x62b0001704a8, select_lex=0x629000091720) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:5249
#21 0x0000000000be4596 in handle_select (thd=thd@entry=0x62b00016c218, lex=<optimized out>, lex@entry=0x62b0001703c8, result=<optimized out>, result@entry=0x62d0000e7ad0, setup_tables_done_option=<optimized out>, setup_tables_done_option@entry=0) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:628
#22 0x0000000000b3df18 in execute_sqlcom_select (thd=0x62b00016c218, all_tables=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:6013
#23 0x0000000000b2cd51 in mysql_execute_command (thd=0x62b00016c218, is_called_from_prepared_stmt=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:3912
#24 0x0000000000b1fe79 in mysql_parse (thd=thd@entry=0x62b00016c218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, parser_state@entry=0x7fffd242ca80) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:7734
#25 0x0000000000b19069 in dispatch_command (command=<optimized out>, thd=0x62b00016c218, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:1893
#26 0x0000000000b20b71 in do_command (thd=0x62b00016c218, blocking=true) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:1406
#27 0x0000000000f03476 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1445
#28 0x0000000000f02eb9 in handle_one_connection (arg=arg@entry=0x6080005833b8) at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1347
#29 0x0000000001a00c1b in pfs_spawn_thread (arg=0x617000005118) at /home/wx/mariadb-11.3.0/storage/perfschema/pfs.cc:2201
#30 0x00007ffff79f7609 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#31 0x00007ffff770f133 in clone () from /lib/x86_64-linux-gnu/libc.so.6
Attachments
Issue Links
- duplicates
-
MDEV-28621 group by optimization incorrectly removing subquery where subject buried in a function
-
- Closed
-
Thanks!
This is the same bug as
MDEV-28621Version: '10.4.32-MariaDB-debug-log'
mysqld: /10.4/src/sql/item_subselect.cc:733: virtual bool Item_subselect::exec(): Assertion `!eliminated' failed.
231023 18:40:44 [ERROR] mysqld got signal 6 ;
Server version: 10.4.32-MariaDB-debug-log source revision: babd833685e1fd1da4411a0874ba1c98bb0b631d
/lib/x86_64-linux-gnu/libc.so.6(+0x33fd6)[0x7fa756c1dfd6]
sql/item_subselect.cc:735(Item_subselect::exec())[0x557a8fb035be]
sql/item_subselect.cc:1400(Item_singlerow_subselect::val_int())[0x557a8fb099e1]
sql/item_func.cc:1118(Item_func_plus::int_op())[0x557a8fa3310e]
sql/item_func.h:750(Item_func_hybrid_field_type::val_int_from_int_op())[0x557a8f6bde68]
sql/sql_type.cc:4962(Type_handler_int_result::Item_func_hybrid_field_type_val_int(Item_func_hybrid_field_type*) const)[0x557a8f692826]
sql/item_func.h:806(Item_func_hybrid_field_type::val_int())[0x557a8f0d3bef]
sql/sql_type.cc:3784(Type_handler_int_result::Item_update_null_value(Item*) const)[0x557a8f68c992]
sql/item.h:1826(Item::update_null_value())[0x557a8ee4fde4]
sql/item_func.h:185(Item_func::is_null())[0x557a8f018cdf]
sql/item.cc:8574(Item_direct_ref::is_null())[0x557a8f967961]
sql/item.h:5976(Item_direct_view_ref::is_null())[0x557a8f985e0b]
sql/sql_select.cc:12712(end_sj_materialize(JOIN*, st_join_table*, bool))[0x557a8f220b69]
sql/sql_select.cc:21129(evaluate_join_record(JOIN*, st_join_table*, int))[0x557a8f25ba55]
sql/sql_select.cc:20902(sub_select(JOIN*, st_join_table*, bool))[0x557a8f25a38a]
sql/opt_subselect.cc:5712(join_tab_execution_startup(st_join_table*))[0x557a8f611933]
sql/sql_select.cc:20891(sub_select(JOIN*, st_join_table*, bool))[0x557a8f25a08a]
sql/sql_select.cc:21129(evaluate_join_record(JOIN*, st_join_table*, int))[0x557a8f25ba55]
sql/sql_select.cc:20902(sub_select(JOIN*, st_join_table*, bool))[0x557a8f25a38a]
sql/sql_select.cc:20423(do_select(JOIN*, Procedure*))[0x557a8f258130]
sql/sql_select.cc:4605(JOIN::exec_inner())[0x557a8f1e5c78]
sql/sql_select.cc:4388(JOIN::exec())[0x557a8f1e32a8]
sql/sql_select.cc:4828(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*))[0x557a8f1e7484]
sql/sql_select.cc:442(handle_select(THD*, LEX*, select_result*, unsigned long))[0x557a8f1b7f7c]
sql/sql_parse.cc:6475(execute_sqlcom_select(THD*, TABLE_LIST*))[0x557a8f123d80]
sql/sql_parse.cc:3978(mysql_execute_command(THD*))[0x557a8f1114f7]
sql/sql_parse.cc:8012(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x557a8f12d25b]
sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x557a8f103681]
sql/sql_parse.cc:1378(do_command(THD*))[0x557a8f1001ac]
sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x557a8f50e56d]
sql/sql_connect.cc:1325(handle_one_connection)[0x557a8f50de11]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x557a901b8d8a]
nptl/pthread_create.c:478(start_thread)[0x7fa757138609]
Some pointers may be invalid and cause the dump to abort.
Query (0x62b0000a1290): SELECT x * 1 + x FROM x WHERE CASE WHEN ( SELECT x AS x WHERE 1 > x GROUP BY x IS NULL ) LIKE x + x % x - 1 THEN ( 1 * x ) ELSE ( x >= 1.000000 OR x < 1 ) AND x IN ( 1 , x ) END IN ( WITH x ( x ) AS ( SELECT x + ( WITH x ( x ) AS ( SELECT 1 UNION SELECT x + 1 FROM x ) SELECT 1 EXCEPT SELECT x + 1 FROM ( SELECT ( SELECT * FROM x EXCEPT SELECT * FROM x ) BETWEEN ( SELECT x FROM x WHERE x = 1 AND x < 1 GROUP BY - 'x' >= x ) AND 1 FROM x UNION SELECT x FROM x ) AS x ) FROM x ) SELECT x FROM x AS x GROUP BY 'x' , x IN ( 1 , 1 , 1 ) , x , x ) ORDER BY ( 1 < x AND x = 1 )