[MDEV-32760] Assertion Failed at /mariadb-11.3.0/sql/item.h:6054 Created: 2023-11-10  Updated: 2023-12-12

Status: Confirmed
Project: MariaDB Server
Component/s: Server
Affects Version/s: 10.9, 10.10, 10.11, 11.0, 11.1, 11.2, 11.3.0
Fix Version/s: 10.11, 11.0, 11.1, 11.2

Type: Bug Priority: Major
Reporter: Xin Wen Assignee: Sergei Petrunia
Resolution: Unresolved Votes: 0
Labels: None
Environment:

Ubuntu 20.04



 Description   

Run these queries in debug build:

CREATE TABLE t0 ( c56 INT , c12 CHAR ) ;
INSERT INTO t0 VALUES ( DEFAULT , DEFAULT ) , ( DEFAULT , DEFAULT ) ;
CREATE VIEW v0 AS SELECT c56 AS c33 , c56 AS c16 , -81 AS c45 FROM t0 ;
SELECT VARIANCE( c45 ) AS c36 FROM v0 GROUP BY c45 , c16 HAVING c16 = 61 IN ( 33 , -36 , LENGTH ( REVERSE ( c45 ) = 48 IN ( SELECT CONVERT ( c16 , UNSIGNED ) AS c60 FROM v0 ) ) = 47 ) ;

Will trigger Assertion Failed.
GDB info:
#0 0x00007ffff6c0c00b in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff6beb859 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6beb729 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff6bfcfd6 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x0000555557bd2143 in Item_direct_view_ref::check_null_ref (this=0x629000188890) at /home/wx/mariadb-11.3.0/sql/item.h:6054
#5 0x0000555557bd2b5e in Item_direct_view_ref::val_str (this=0x629000188890, tmp=0x6290000f6bf8) at /home/wx/mariadb-11.3.0/sql/item.h:6145
#6 0x0000555557d0a838 in Item_func_reverse::val_str (this=0x6290000f6b48, str=0x7fffd1629ea0) at /home/wx/mariadb-11.3.0/sql/item_strfunc.cc:1286
#7 0x0000555557cffcb7 in Item_str_func::val_decimal (this=0x6290000f6b48, decimal_value=0x629000190458) at /home/wx/mariadb-11.3.0/sql/item_strfunc.cc:147
#8 0x0000555556e14c67 in Item::val_decimal_result (this=0x6290000f6b48, val=0x629000190458) at /home/wx/mariadb-11.3.0/sql/item.h:1796
#9 0x0000555557bc6422 in Item_cache_decimal::cache_value (this=0x6290001903b8) at /home/wx/mariadb-11.3.0/sql/item.cc:10455
#10 0x00005555578eb11e in Item_cache::has_value (this=0x6290001903b8) at /home/wx/mariadb-11.3.0/sql/item.h:7171
#11 0x0000555557bc66ea in Item_cache_decimal::val_decimal (this=0x6290001903b8, val=0x7fffd162a078) at /home/wx/mariadb-11.3.0/sql/item.cc:10480
#12 0x000055555789a036 in VDec::VDec (this=0x7fffd162a070, item=0x6290001903b8) at /home/wx/mariadb-11.3.0/sql/sql_type.cc:293
#13 0x0000555557beaf4b in Arg_comparator::compare_decimal (this=0x6290000f86e8) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:865
#14 0x0000555557c2e1d4 in Arg_comparator::compare (this=0x6290000f86e8) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:104
#15 0x0000555557bf5bdb in Item_func_eq::val_int (this=0x6290000f8630) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:1780
#16 0x0000555557c706e4 in Item_int_func::val_str (this=0x6290000f8630, str=0x6290000f8a40) at /home/wx/mariadb-11.3.0/sql/item_func.cc:760
#17 0x0000555557c8d29b in Item_func_octet_length::val_int (this=0x6290000f8990) at /home/wx/mariadb-11.3.0/sql/item_func.cc:3108
#18 0x0000555557bec903 in Arg_comparator::compare_int_signed (this=0x6290000f8bb8) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:944
#19 0x0000555557c2e1d4 in Arg_comparator::compare (this=0x6290000f8bb8) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:104
#20 0x0000555557bf5bdb in Item_func_eq::val_int (this=0x6290000f8b00) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:1780
#21 0x0000555557c32038 in cmp_item_int::cmp (this=0x62900018a1d8, arg=0x6290000f8b00) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:1783
#22 0x0000555557c3338a in Predicant_to_list_comparator::cmp_arg (this=0x6290000f8e58, args=0x6290000f8df8, i=2) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:2083
#23 0x0000555557c343a3 in Predicant_to_list_comparator::cmp (this=0x6290000f8e58, args=0x6290000f8df8, idx=0x7fffd162a3f0, found_unknown_values=0x6290000f8dec) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.h:2260
#24 0x0000555557c127bd in Item_func_in::val_int (this=0x6290000f8d80) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:4761
#25 0x00005555578cc1de in Type_handler_int_result::Item_eq_value (this=0x55555b7b6a00 <type_handler_slonglong>, thd=0x62c0001e0288, attr=0x62d0000d28b8, a=0x6290000f8d80, b=0x6290000f8d80) at /home/wx/mariadb-11.3.0/sql/sql_type.cc:8689
#26 0x0000555557c235d4 in Item_equal::add_const (this=0x62d0000d2808, thd=0x62c0001e0288, c=0x6290000f8d80) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:6849
#27 0x0000555557c23c81 in Item_equal::merge_with_check (this=0x62d0000d2808, thd=0x62c0001e0288, item=0x62d0000d2808, save_merged=true) at /home/wx/mariadb-11.3.0/sql/item_cmpfunc.cc:6974
#28 0x00005555573410d3 in propagate_new_equalities (thd=0x62c0001e0288, cond=0x62d0000d2808, new_equalities=0x62d0000d2930, inherited=0x0, is_simplifiable_cond=0x7fffd162a900) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:19844
#29 0x00005555577ba9a8 in and_new_conditions_to_optimized_cond (thd=0x62c0001e0288, cond=0x62d0000d2808, cond_eq=0x629000187070, new_conds=..., cond_value=0x629000186f48) at /home/wx/mariadb-11.3.0/sql/opt_subselect.cc:6331
#30 0x00005555572c0873 in JOIN::optimize_inner (this=0x629000186ba8) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:2384
#31 0x00005555572bbba6 in JOIN::optimize (this=0x629000186ba8) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:1944
#32 0x00005555572dd9ba in mysql_select (thd=0x62c0001e0288, tables=0x6290000f5c58, fields=..., conds=0x0, og_num=2, order=0x0, group=0x6290000f64d8, having=0x6290000f8f30, proc_param=0x0, select_options=2165049856, result=0x629000186b78, unit=0x62c0001e46d8, select_lex=0x6290000f5480) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:5235
#33 0x00005555572ad18a in handle_select (thd=0x62c0001e0288, lex=0x62c0001e45f8, result=0x629000186b78, setup_tables_done_option=0) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:628
#34 0x00005555571ce583 in execute_sqlcom_select (thd=0x62c0001e0288, all_tables=0x6290000f5c58) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:6013
#35 0x00005555571becf6 in mysql_execute_command (thd=0x62c0001e0288, is_called_from_prepared_stmt=false) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:3912
#36 0x00005555571d95e2 in mysql_parse (thd=0x62c0001e0288, rawbuf=0x6290000f52a8 "SELECT VARIANCE( c45 ) AS c36 FROM v0 GROUP BY c45 , c16 HAVING c16 = 61 IN ( 33 , -36 , LENGTH ( REVERSE ( c45 ) = 48 IN ( SELECT CONVERT ( c16 , UNSIGNED ) AS c60 FROM v0 ) ) = 47 )", length=183, parser_state=0x7fffd162c870) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:7734
#37 0x00005555571b1237 in dispatch_command (command=COM_QUERY, thd=0x62c0001e0288, packet=0x6290000fa289 "SELECT VARIANCE( c45 ) AS c36 FROM v0 GROUP BY c45 , c16 HAVING c16 = 61 IN ( 33 , -36 , LENGTH ( REVERSE ( c45 ) = 48 IN ( SELECT CONVERT ( c16 , UNSIGNED ) AS c60 FROM v0 ) ) = 47 ) ;\n", packet_length=186, blocking=true) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:1893
#38 0x00005555571adf7c in do_command (thd=0x62c0001e0288, blocking=true) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:1406
#39 0x000055555768e557 in do_handle_one_connection (connect=0x61100008c708, put_in_cache=true) at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1445
#40 0x000055555768deb4 in handle_one_connection (arg=0x61100008c5c8) at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1347
#41 0x00005555582fa350 in pfs_spawn_thread (arg=0x618000005108) at /home/wx/mariadb-11.3.0/storage/perfschema/pfs.cc:2201
#42 0x00007ffff7115609 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#43 0x00007ffff6ce8133 in clone () from /lib/x86_64-linux-gnu/libc.so.6



 Comments   
Comment by Alice Sherepa [ 2023-11-10 ]

Thanks! I repeated on 10.9-11.2, not repeatable on 10.4-10.6 (there just Warning 1292 Truncated incorrect DECIMAL value: '18-')

Version: '10.9.8-MariaDB-debug-log' 
mariadbd: /10.9/sql/item.h:6010: bool Item_direct_view_ref::check_null_ref(): Assertion `null_ref_table' failed.
231110 13:06:21 [ERROR] mysqld got signal 6 ;
 
Server version: 10.9.8-MariaDB-debug-log source revision: 3e0009dc3a771e4dbf2fa4a4cf87e750453fb2eb
 
/lib/x86_64-linux-gnu/libc.so.6(+0x33fd6)[0x7fa0064cdfd6]
sql/item.h:6011(Item_direct_view_ref::check_null_ref())[0x558ea6049b99]
sql/item.h:6101(Item_direct_view_ref::val_str(String*))[0x558ea604a5b4]
sql/item_strfunc.cc:1098(Item_func_reverse::val_str(String*))[0x558ea617e3c4]
sql/item_strfunc.cc:142(Item_str_func::val_decimal(my_decimal*))[0x558ea6176243]
sql/item.h:1796(Item::val_decimal_result(my_decimal*))[0x558ea52ee059]
sql/item.cc:10433(Item_cache_decimal::cache_value())[0x558ea603dfc4]
sql/item.h:7117(Item_cache::has_value())[0x558ea5d6cf3a]
sql/item.cc:10458(Item_cache_decimal::val_decimal(my_decimal*))[0x558ea603e28c]
sql/sql_type.cc:293(VDec::VDec(Item*))[0x558ea5d1bd80]
sql/item_cmpfunc.cc:866(Arg_comparator::compare_decimal())[0x558ea606299f]
sql/item_cmpfunc.h:103(Arg_comparator::compare())[0x558ea60a5c38]
sql/item_cmpfunc.cc:1780(Item_func_eq::val_int())[0x558ea606d62f]
sql/item_func.cc:769(Item_int_func::val_str(String*))[0x558ea60e4b36]
sql/item_func.cc:3073(Item_func_octet_length::val_int())[0x558ea6101bff]
sql/item_cmpfunc.cc:944(Arg_comparator::compare_int_signed())[0x558ea6064357]
sql/item_cmpfunc.h:103(Arg_comparator::compare())[0x558ea60a5c38]
sql/item_cmpfunc.cc:1780(Item_func_eq::val_int())[0x558ea606d62f]
sql/item_cmpfunc.h:1787(cmp_item_int::cmp(Item*))[0x558ea60a9a4c]
sql/item_cmpfunc.h:2087(Predicant_to_list_comparator::cmp_arg(Item_args*, unsigned int))[0x558ea60aad9e]
sql/item_cmpfunc.h:2264(Predicant_to_list_comparator::cmp(Item_args*, unsigned int*, bool*))[0x558ea60abdb7]
sql/item_cmpfunc.cc:4770(Item_func_in::val_int())[0x558ea608a209]
sql/sql_type.cc:8682(Type_handler_int_result::Item_eq_value(THD*, Type_cmp_attributes const*, Item*, Item*) const)[0x558ea5d4df4e]
sql/item_cmpfunc.cc:6860(Item_equal::add_const(THD*, Item*))[0x558ea609b072]
sql/item_cmpfunc.cc:6986(Item_equal::merge_with_check(THD*, Item_equal*, bool))[0x558ea609b71f]
sql/sql_select.cc:18152(propagate_new_equalities(THD*, Item*, List<Item_equal>*, COND_EQUAL*, bool*))[0x558ea58176fb]
sql/opt_subselect.cc:6149(and_new_conditions_to_optimized_cond(THD*, Item*, COND_EQUAL**, List<Item>&, Item::cond_result*))[0x558ea5c784c0]
sql/sql_select.cc:2314(JOIN::optimize_inner())[0x558ea57a11ee]
sql/sql_select.cc:1893(JOIN::optimize())[0x558ea579c639]
sql/sql_select.cc:5093(mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x558ea57be0d0]
sql/sql_select.cc:584(handle_select(THD*, LEX*, select_result*, unsigned long))[0x558ea578deeb]
sql/sql_parse.cc:6288(execute_sqlcom_select(THD*, TABLE_LIST*))[0x558ea56afdb7]
sql/sql_parse.cc:3958(mysql_execute_command(THD*, bool))[0x558ea569e5e4]
sql/sql_parse.cc:8060(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x558ea56bb0d2]
sql/sql_parse.cc:1896(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x558ea5690caf]
sql/sql_parse.cc:1407(do_command(THD*, bool))[0x558ea568da08]
sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x558ea5b51597]
sql/sql_connect.cc:1320(handle_one_connection)[0x558ea5b50ef4]
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x558ea677fc78]
nptl/pthread_create.c:478(start_thread)[0x7fa0069e8609]
 
Query (0x6290001092a8): SELECT VARIANCE( c45 ) AS c36 FROM v0 GROUP BY c45 , c16 HAVING c16 = 61 IN ( 33 , -36 , LENGTH ( REVERSE ( c45 ) = 48 IN ( SELECT CONVERT ( c16 , UNSIGNED ) AS c60 FROM v0 ) ) = 47 )
 
 

Version: '11.1.2-MariaDB'  
231110 13:08:43 [ERROR] mysqld got signal 11 ;
 
Server version: 11.1.2-MariaDB source revision: 9bc25d98209df6810f7a7d5e7dd3ae677a313ab5
 
mysys/stacktrace.c:216(my_print_stacktrace)[0x555c214bfc3e]
sql/signal_handler.cc:241(handle_fatal_signal)[0x555c20eb21f7]
sigaction.c:0(__restore_rt)[0x7fd6b041d420]
sql/item.h:6016(Item_direct_view_ref::check_null_ref())[0x555c20edfb11]
sql/item_strfunc.cc:1123(Item_func_reverse::val_str(String*))[0x555c20f51e7f]
sql/item_strfunc.cc:143(Item_str_func::val_decimal(my_decimal*))[0x555c20f5c81e]
sql/item.cc:10460(Item_cache_decimal::cache_value())[0x555c20ec77d3]
sql/item.h:7123(Item_cache::has_value())[0x555c20ec7919]
sql/sql_type.cc:293(VDec::VDec(Item*))[0x555c20dfc33b]
sql/item_cmpfunc.cc:866(Arg_comparator::compare_decimal())[0x555c20eeccf8]
sql/item_cmpfunc.cc:1781(Item_func_eq::val_int())[0x555c20eed14a]
sql/item_func.cc:769(Item_int_func::val_str(String*))[0x555c20f1ed86]
sql/item_func.cc:3074(Item_func_octet_length::val_int())[0x555c20f1e023]
sql/item_cmpfunc.cc:945(Arg_comparator::compare_int_signed())[0x555c20ee8e79]
sql/item_cmpfunc.cc:1781(Item_func_eq::val_int())[0x555c20eed14a]
sql/item_cmpfunc.h:1798(cmp_item_int::cmp(Item*))[0x555c20efe453]
sql/item_cmpfunc.h:2276(Predicant_to_list_comparator::cmp(Item_args*, unsigned int*, bool*))[0x555c20ef91ef]
sql/sql_type.cc:8683(Type_handler_int_result::Item_eq_value(THD*, Type_cmp_attributes const*, Item*, Item*) const)[0x555c20df019f]
sql/item_cmpfunc.cc:6861(Item_equal::add_const(THD*, Item*))[0x555c20efc804]
sql/item_cmpfunc.cc:6986(Item_equal::merge_with_check(THD*, Item_equal*, bool))[0x555c20efcae9]
sql/sql_list.h:429(base_list_iterator::next())[0x555c20ca4990]
sql/opt_subselect.cc:6338(and_new_conditions_to_optimized_cond(THD*, Item*, COND_EQUAL**, List<Item>&, Item::cond_result*))[0x555c20dba123]
sql/sql_select.cc:2380(JOIN::optimize_inner())[0x555c20cd1325]
sql/sql_select.cc:1946(JOIN::optimize())[0x555c20cd32a2]
sql/sql_select.cc:5229(mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x555c20cd33a1]
sql/sql_select.cc:640(handle_select(THD*, LEX*, select_result*, unsigned long long))[0x555c20cd3cc4]
sql/sql_parse.cc:6041(execute_sqlcom_select(THD*, TABLE_LIST*))[0x555c20af55f1]
sql/sql_parse.cc:3954(mysql_execute_command(THD*, bool))[0x555c20c63910]
sql/sql_parse.cc:7787(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x555c20c6591b]
sql/sql_parse.cc:1951(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x555c20c67d58]
sql/sql_parse.cc:1407(do_command(THD*, bool))[0x555c20c69283]
sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x555c20d760c7]
sql/sql_connect.cc:1324(handle_one_connection)[0x555c20d76364]
perfschema/pfs.cc:2204(pfs_spawn_thread)[0x555c21101e5c]
nptl/pthread_create.c:478(start_thread)[0x7fd6b0411609]
 
Query (0x7fd640010c40): SELECT VARIANCE( c45 ) AS c36 FROM v0 GROUP BY c45 , c16 HAVING c16 = 61 IN ( 33 , -36 , LENGTH ( REVERSE ( c45 ) = 48 IN ( SELECT CONVERT ( c16 , UNSIGNED ) AS c60 FROM v0 ) ) = 47 )

Comment by HeShan [ 2023-12-12 ]

 
CREATE TABLE t0 ( c56 INT , c12 CHAR ) ;
INSERT INTO t0 VALUES ( DEFAULT , DEFAULT ) , ( DEFAULT , DEFAULT ) ;
CREATE VIEW v0 AS SELECT c56 , c56 AS c16 , -81 AS c45 FROM t0 ;
 
SELECT  c45   FROM v0
GROUP BY  c16 
HAVING c16 = 61 IN (   c45  = 48 IN ( SELECT c16   FROM v0 )  ) ;

Could you please confirm whether the simplification process we applied has been helpful for developers in diagnosing and addressing this issue?

Generated at Thu Feb 08 10:33:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.