[MDEV-26437]  Server crashes in Item_args::walk_args Created: 2021-08-19  Updated: 2022-07-02  Resolved: 2021-10-01

Status: Closed
Project: MariaDB Server
Component/s: Virtual Columns
Affects Version/s: 10.7.0, 10.2, 10.3, 10.4, 10.5, 10.6
Fix Version/s: 10.3.35, 10.4.25, 10.5.16, 10.6.8, 10.7.4

Type: Bug Priority: Major
Reporter: Jingzhou Fu Assignee: Nikita Malyavin
Resolution: Duplicate Votes: 0
Labels: None
Environment:

Linux version 5.13.0-1-MANJARO (builduser@LEGION) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Mon Jun 7 06:16:10 UTC 2021 x86_64


Issue Links:
Duplicate
duplicates MDEV-24176 Server crashes after insert in the ta... Closed
is duplicated by MDEV-26353 MariaDB server crash in Arg_comparato... Closed
is duplicated by MDEV-26354 MariaDB server crash in Field::set_de... Closed
is duplicated by MDEV-26407 Server crashes in Item_func_in::clean... Closed
is duplicated by MDEV-26426 MariaDB server use-after-poison issue Closed
is duplicated by MDEV-26432 MariaDB Server SEGV issue Closed
Relates
relates to MDEV-25772 Virtual Column with CURDATE function ... Closed

 Description   

step to reproduce:

CREATE TABLE v0 ( v2 INT NOT NULL , v1 BIGINT AS ( CASE 'x' WHEN CURRENT_USER ( ) THEN v2 END ) ) ;
 SELECT v2 AS v3 FROM v0 WHERE v1 LIKE 'x' ESCAPE 'x' ;
 INSERT INTO v0 VALUES ( -128 , NULL , NULL , NULL , NULL , TO_DATE ( 'x' , 'x' ) ) ;

report (compiled with ASAN):

Server version: 10.7.0-MariaDB
key_buffer_size=134217728
read_buffer_size=131072
max_used_connections=1
max_threads=153
thread_count=1
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 467956 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x62b0000bd218
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f9fca453850 thread_stack 0x5fc00
sanitizer_common/sanitizer_common_interceptors.inc:4203(__interceptor_backtrace.part.0)[0x7f9fe9cffc3e]
mysys/stacktrace.c:213(my_print_stacktrace)[0x556139072747]
sql/signal_handler.cc:222(handle_fatal_signal)[0x55613803a120]
sigaction.c:0(__restore_rt)[0x7f9fe96e9870]
:0(__GI_raise)[0x7f9fe91c8d22]
:0(__GI_abort)[0x7f9fe91b2862]
libsupc++/vterminate.cc:75(__gnu_cxx::__verbose_terminate_handler())[0x7f9fe9552802]
libsupc++/eh_terminate.cc:48(__cxxabiv1::__terminate(void (*)()))[0x7f9fe955ec8a]
??:0(std::terminate())[0x7f9fe955ecf7]
??:0(__cxa_pure_virtual)[0x7f9fe955fa75]
sql/item.cc:1121(Item::check_type_scalar(st_mysql_const_lex_string const&) const)[0x5561380a4308]
sql/item_func.cc:271(Item_func::check_argument_types_scalar(unsigned int, unsigned int) const)[0x5561381e2a5b]
sql/item_func.cc:357(Item_func::fix_fields(THD*, Item**))[0x5561381ce34e]
sql/item_cmpfunc.cc:3131(Item_func_case::fix_fields(THD*, Item**))[0x556138100700]
sql/table.cc:3590(fix_vcol_expr(THD*, Virtual_column_info*))[0x556137be6ee2]
sql/sql_base.cc:5429(TABLE::fix_vcol_exprs(THD*))[0x55613775e1ca]
sql/sql_base.cc:5467(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x55613775ef93]
sql/sql_base.cc:5261(open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*))[0x556137763800]
sql/sql_base.h:397(open_and_lock_tables(THD*, TABLE_LIST*, bool, unsigned int))[0x556137819ef4]
sql/sql_parse.cc:4565(mysql_execute_command(THD*, bool))[0x5561378d2bb8]
sql/sql_parse.cc:8047(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x5561378df5a1]
sql/sql_parse.cc:1898(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x5561378e560c]
sql/sql_parse.cc:1406(do_command(THD*, bool))[0x5561378ea73d]
sql/sql_connect.cc:1418(do_handle_one_connection(CONNECT*, bool))[0x556137ca5e57]
sql/sql_connect.cc:1312(handle_one_connection)[0x556137ca633d]
perfschema/pfs.cc:2204(pfs_spawn_thread)[0x556138736c2c]
pthread_create.c:0(start_thread)[0x7f9fe96df259]
:0(__GI___clone)[0x7f9fe928a5e3]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x629000087238): INSERT INTO v0 VALUES ( -128 , NULL , NULL , NULL , NULL , TO_DATE ( 'x' , 'x' ) )
 
Connection ID (thread ID): 4
Status: NOT_KILLED
 
Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
 
The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mysqld/ contains
information that should help you find out what is causing the crash.
Writing a core file...
Working directory at /home/fuboat/mariadb-tmp/5
Resource Limits:
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        unlimited            unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             61608                61608                processes 
Max open files            524288               524288               files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       61608                61608                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        
Core pattern: core

gdb bt:

Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/local/mysql/bin//mysqld --port 10005 --datadir=/home/fuboat/mariadb-tmp/5'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f9fe96e6808 in pthread_kill () from /usr/lib/libpthread.so.0
#1  0x000055613803a06b in handle_fatal_signal (sig=<optimized out>) at /experiment/mariadb-server/sql/signal_handler.cc:344
#2  <signal handler called>
#3  0x00007f9fe91c8d22 in raise () from /usr/lib/libc.so.6
#4  0x00007f9fe91b2862 in abort () from /usr/lib/libc.so.6
#5  0x00007f9fe9552802 in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#6  0x00007f9fe955ec8a in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
#7  0x00007f9fe955ecf7 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
#8  0x00007f9fe955fa75 in __cxxabiv1::__cxa_pure_virtual () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/pure.cc:50
#9  0x00005561380a4308 in Item::check_type_scalar (this=this@entry=0x629000089440, opname=...) at /experiment/mariadb-server/sql/item.cc:1121
#10 0x00005561381e2a5b in Item_func::check_argument_types_scalar (this=0x6190000a3ed8, start=<optimized out>, end=<optimized out>) at /experiment/mariadb-server/sql/item_func.cc:271
#11 0x00005561381ce34e in Item_func::fix_fields (this=this@entry=0x6190000a3ed8, thd=<optimized out>, ref=<optimized out>) at /experiment/mariadb-server/sql/item_func.cc:357
#12 0x0000556138100700 in Item_func_case::fix_fields (this=0x6190000a3ed8, thd=<optimized out>, ref=<optimized out>) at /experiment/mariadb-server/sql/item_cmpfunc.cc:3131
#13 0x0000556137be6ee2 in fix_vcol_expr (thd=<optimized out>, vcol=0x61d0000532b8) at /experiment/mariadb-server/sql/table.cc:3588
#14 0x000055613775e1ca in TABLE::fix_vcol_exprs (this=0x6190000a3298, thd=0x62b0000bd218) at /experiment/mariadb-server/sql/sql_base.cc:5429
#15 0x000055613775ef93 in fix_all_session_vcol_exprs (tables=0x6290000873b8, thd=0x62b0000bd218) at /experiment/mariadb-server/sql/sql_base.cc:5465
#16 lock_tables (thd=thd@entry=0x62b0000bd218, tables=0x6290000873b8, count=<optimized out>, flags=flags@entry=0) at /experiment/mariadb-server/sql/sql_base.cc:5649
#17 0x0000556137763800 in open_and_lock_tables (thd=thd@entry=0x62b0000bd218, options=..., tables=<optimized out>, tables@entry=0x6290000873b8, derived=derived@entry=true, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x7f9fca4512d0) at /experiment/mariadb-server/sql/sql_base.cc:5261
#18 0x0000556137819ef4 in open_and_lock_tables (flags=0, derived=true, tables=0x6290000873b8, thd=0x62b0000bd218) at /experiment/mariadb-server/sql/sql_base.h:509
#19 mysql_insert (thd=thd@entry=0x62b0000bd218, table_list=0x6290000873b8, fields=..., values_list=..., update_fields=..., update_values=..., duplic=<optimized out>, ignore=<optimized out>, result=<optimized out>) at /experiment/mariadb-server/sql/sql_insert.cc:757
#20 0x00005561378d2bb8 in mysql_execute_command (thd=0x62b0000bd218, is_called_from_prepared_stmt=<optimized out>) at /experiment/mariadb-server/sql/sql_parse.cc:4565
#21 0x00005561378df5a1 in mysql_parse (thd=0x62b0000bd218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /experiment/mariadb-server/sql/sql_parse.cc:8030
#22 0x00005561378e560c in dispatch_command (command=<optimized out>, thd=0x62b0000bd218, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /experiment/mariadb-server/sql/sql_parse.cc:1896
#23 0x00005561378ea73d in do_command (thd=0x62b0000bd218, blocking=blocking@entry=true) at /experiment/mariadb-server/sql/sql_parse.cc:1404
#24 0x0000556137ca5e57 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /experiment/mariadb-server/sql/sql_connect.cc:1418
#25 0x0000556137ca633d in handle_one_connection (arg=arg@entry=0x6080000023b8) at /experiment/mariadb-server/sql/sql_connect.cc:1312
#26 0x0000556138736c2c in pfs_spawn_thread (arg=0x617000005f18) at /experiment/mariadb-server/storage/perfschema/pfs.cc:2201
#27 0x00007f9fe96df259 in start_thread () from /usr/lib/libpthread.so.0
#28 0x00007f9fe928a5e3 in clone () from /usr/lib/libc.so.6



 Comments   
Comment by Daniel Black [ 2021-08-20 ]

Thanks for the nice stack traces.

Additional gdb option that expands the arguments some more rather than ... (for next time. We can work it out for the current ones). Thanks for the bu reports.

additional gdb option

set print frame-arguments all

Comment by Alice Sherepa [ 2021-08-24 ]

Thank you! I repeated as described on current 10.2-10.6.
1)

10.2 1f1d5606e08c928e3da98b

#3  <signal handler called>
#4  0x000055a739768e91 in Item_args::walk_args (this=0x7f1ae4035b28, processor=&virtual table offset 792, walk_subquery=false, arg=0x0) at /10.2/src/sql/item.h:4134
#5  0x000055a7397692db in Item_func_or_sum::walk (this=0x7f1ae4035aa0, processor=&virtual table offset 792, walk_subquery=false, arg=0x0) at /10.2/src/sql/item.h:4420
#6  0x000055a7398d8a90 in fix_session_vcol_expr (thd=0x7f1ae4000d90, vcol=0x7f1ae4035bf8) at /10.2/src/sql/table.cc:2837
#7  0x000055a73975def5 in TABLE::fix_vcol_exprs (this=0x7f1ae4176640, thd=0x7f1ae4000d90) at /10.2/src/sql/sql_base.cc:4982
#8  0x000055a73975e128 in fix_all_session_vcol_exprs (thd=0x7f1ae4000d90, tables=0x7f1ae4012858) at /10.2/src/sql/sql_base.cc:5018
#9  0x000055a73975e76e in lock_tables (thd=0x7f1ae4000d90, tables=0x7f1ae4012858, count=1, flags=0) at /10.2/src/sql/sql_base.cc:5189
#10 0x000055a73975db4d in open_and_lock_tables (thd=0x7f1ae4000d90, options=..., tables=0x7f1ae4012858, derived=true, flags=0, prelocking_strategy=0x7f1b38cec738) at /10.2/src/sql/sql_base.cc:4870
#11 0x000055a7397235b9 in open_and_lock_tables (thd=0x7f1ae4000d90, tables=0x7f1ae4012858, derived=true, flags=0) at /10.2/src/sql/sql_base.h:508
#12 0x000055a7397a6272 in mysql_insert (thd=0x7f1ae4000d90, table_list=0x7f1ae4012858, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false) at /10.2/src/sql/sql_insert.cc:758
#13 0x000055a7397ce638 in mysql_execute_command (thd=0x7f1ae4000d90) at /10.2/src/sql/sql_parse.cc:4217
#14 0x000055a7397d9b42 in mysql_parse (thd=0x7f1ae4000d90, rawbuf=0x7f1ae4012708 "INSERT INTO v0 VALUES ( -128 , NULL , NULL , NULL , NULL , TO_DATE ( 'x' , 'x' ) )", length=82, parser_state=0x7f1b38ced560, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:7793
#15 0x000055a7397c7d9d in dispatch_command (command=COM_QUERY, thd=0x7f1ae4000d90, packet=0x7f1ae4008b61 "INSERT INTO v0 VALUES ( -128 , NULL , NULL , NULL , NULL , TO_DATE ( 'x' , 'x' ) ) ", packet_length=83, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:1827
#16 0x000055a7397c6898 in do_command (thd=0x7f1ae4000d90) at /10.2/src/sql/sql_parse.cc:1381
#17 0x000055a739922661 in do_handle_one_connection (connect=0x55a73d6fad10) at /10.2/src/sql/sql_connect.cc:1336
#18 0x000055a7399223c6 in handle_one_connection (arg=0x55a73d6fad10) at /10.2/src/sql/sql_connect.cc:1241
#19 0x000055a73a14bec4 in pfs_spawn_thread (arg=0x55a73d6ddfd0) at /10.2/src/storage/perfschema/pfs.cc:1869
#20 0x00007f1b3eec8609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#21 0x00007f1b3eaa3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

this is probably the same issue as MDEV-24176.

2) another case, that is derived from the test in description:

create table t1 (vi int as ( case 'x' when current_user() then 1 end ) ) ;
select 1 from t1 where vi=1;
show create table t1;

10.2 1f1d5606e08c928e3da98b

#3  <signal handler called>
#4  0x000055d764778405 in Item::print_parenthesised (this=0x7fec30013898, str=0x7fec83f66b10, query_type=665, parent_prec=DEFAULT_PRECEDENCE) at /10.2/src/sql/item.cc:604
#5  0x000055d7647ab009 in Item_func_case::print (this=0x7fec30035178, str=0x7fec83f66b10, query_type=665) at /10.2/src/sql/item_cmpfunc.cc:3381
#6  0x000055d764778459 in Item::print_parenthesised (this=0x7fec30035178, str=0x7fec83f66b10, query_type=665, parent_prec=LOWEST_PRECEDENCE) at /10.2/src/sql/item.cc:607
#7  0x000055d764590630 in Item::print_for_table_def (this=0x7fec30035178, str=0x7fec83f66b10) at /10.2/src/sql/item.h:1405
#8  0x000055d764590991 in Virtual_column_info::print (this=0x7fec300352f8, str=0x7fec83f66b10) at /10.2/src/sql/item.h:6256
#9  0x000055d764574186 in show_create_table (thd=0x7fec30000d90, table_list=0x7fec300127d8, packet=0x7fec83f67170, create_info_arg=0x0, with_db_name=WITHOUT_DB_NAME) at /10.2/src/sql/sql_show.cc:2045
#10 0x000055d764571a27 in mysqld_show_create_get_fields (thd=0x7fec30000d90, table_list=0x7fec300127d8, field_list=0x7fec83f67150, buffer=0x7fec83f67170) at /10.2/src/sql/sql_show.cc:1307
#11 0x000055d764571f3e in mysqld_show_create (thd=0x7fec30000d90, table_list=0x7fec300127d8) at /10.2/src/sql/sql_show.cc:1380
#12 0x000055d7644ddc0a in mysql_execute_command (thd=0x7fec30000d90) at /10.2/src/sql/sql_parse.cc:4016
#13 0x000055d7644e9b42 in mysql_parse (thd=0x7fec30000d90, rawbuf=0x7fec30012708 "show create table t1", length=20, parser_state=0x7fec83f68560, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:7793
#14 0x000055d7644d7d9d in dispatch_command (command=COM_QUERY, thd=0x7fec30000d90, packet=0x7fec30008b61 "show create table t1", packet_length=20, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:1827
#15 0x000055d7644d6898 in do_command (thd=0x7fec30000d90) at /10.2/src/sql/sql_parse.cc:1381
#16 0x000055d764632661 in do_handle_one_connection (connect=0x55d7679cfd10) at /10.2/src/sql/sql_connect.cc:1336
#17 0x000055d7646323c6 in handle_one_connection (arg=0x55d7679cfd10) at /10.2/src/sql/sql_connect.cc:1241
#18 0x000055d764e5bec4 in pfs_spawn_thread (arg=0x55d7679b2fd0) at /10.2/src/storage/perfschema/pfs.cc:1869
#19 0x00007fec8e1f0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007fec8ddcb293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

3)

create table t1 (vi int as ( case 'x' when current_user() then 1 end ) ) ;
select 1 from t1 where vi=1;
select 1 from t1 where vi=1;

10.2 1f1d5606e08c928e3da98b

210824 18:22:51 [ERROR] mysqld got signal 11 ;
Server version: 10.2.41-MariaDB-debug-log
 
sigaction.c:0(__restore_rt)[0x7f62d0eb73c0]
sql/item.h:4134(Item_args::walk_args(bool (Item::*)(void*), bool, void*))[0x564f69fa2e91]
sql/item.h:4420(Item_func_or_sum::walk(bool (Item::*)(void*), bool, void*))[0x564f69fa32db]
sql/table.cc:6809(TABLE::mark_virtual_col(Field*))[0x564f6a11d2e3]
sql/sql_base.cc:5314(update_field_dependencies(THD*, Field*, TABLE*))[0x564f69f98ac4]
sql/sql_base.cc:5651(find_field_in_table(THD*, TABLE*, char const*, unsigned int, bool, unsigned int*))[0x564f69f999f0]
sql/sql_base.cc:5764(find_field_in_table_ref(THD*, TABLE_LIST*, char const*, unsigned int, char const*, char const*, char const*, Item**, bool, bool, unsigned int*, bool, TABLE_LIST**))[0x564f69f99e24]
sql/sql_base.cc:6056(find_field_in_tables(THD*, Item_ident*, TABLE_LIST*, TABLE_LIST*, Item**, find_item_error_report_type, bool, bool))[0x564f69f9a978]
sql/item.cc:5463(Item_field::fix_fields(THD*, Item**))[0x564f6a2b0090]
sql/item_func.cc:201(Item_func::fix_fields(THD*, Item**))[0x564f6a306295]
sql/sql_base.cc:8004(setup_conds(THD*, TABLE_LIST*, List<TABLE_LIST>&, Item**))[0x564f69f9fa5b]
sql/sql_select.cc:649(setup_without_group(THD*, Bounds_checked_array<Item*>, TABLE_LIST*, List<TABLE_LIST>&, List<Item>&, List<Item>&, Item**, st_order*, st_order*, List<Window_spec>&, List<Item_window_func>&, bool*, unsigned int*))[0x564f6a0460f9]
sql/sql_select.cc:812(JOIN::prepare(TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*))[0x564f6a046b9f]
sql/sql_select.cc:3827(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*))[0x564f6a05151a]
sql/sql_select.cc:361(handle_select(THD*, LEX*, select_result*, unsigned long))[0x564f6a045720]
sql/sql_parse.cc:6271(execute_sqlcom_select(THD*, TABLE_LIST*))[0x564f6a00fd86]
sql/sql_parse.cc:3582(mysql_execute_command(THD*))[0x564f6a0068fa]
sql/sql_parse.cc:7793(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x564f6a013b42]
sql/sql_parse.cc:1830(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x564f6a001d9d]
sql/sql_parse.cc:1381(do_command(THD*))[0x564f6a000898]
sql/sql_connect.cc:1336(do_handle_one_connection(CONNECT*))[0x564f6a15c661]
sql/sql_connect.cc:1242(handle_one_connection)[0x564f6a15c3c6]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x564f6a985ec4]
nptl/pthread_create.c:478(start_thread)[0x7f62d0eab609]
x86_64/clone.S:97(__GI___clone)[0x7f62d0a86293]
 
Query (0x7f6274012708): select 1 from t1 where vi=1

Comment by Alice Sherepa [ 2021-08-25 ]

from MDEV-26432, with LIKE function

CREATE TABLE t1 ( v2 INT , v1 INT AS (( USER () LIKE 'x' ) ) ) ;
 SELECT 1 FROM t1 WHERE v1=1 ;
 SELECT * FROM t1;

10.2 1f1d5606e08c928e3da98b

#3  <signal handler called>
#4  0x000055993dc9de91 in Item_args::walk_args (this=0x7f9c20035278, processor=&virtual table offset 880, walk_subquery=true, arg=0x0) at /10.2/src/sql/item.h:4134
#5  0x000055993e0f80b7 in Item_func_like::walk (this=0x7f9c200351f0, processor=&virtual table offset 880, walk_subquery=true, arg=0x0) at /10.2/src/sql/item_cmpfunc.h:2018
#6  0x000055993de182e3 in TABLE::mark_virtual_col (this=0x7f9c20175dc0, field=0x7f9c20176ad0) at /10.2/src/sql/table.cc:6807
#7  0x000055993dc99ed2 in insert_fields (thd=0x7f9c20000d90, context=0x7f9c20005128, db_name=0x0, table_name=0x0, it=0x7f9c7ad7f200, any_privileges=false, hidden_bit_fields=0x7f9c200053a0) at /10.2/src/sql/sql_base.cc:7780
#8  0x000055993dc981dd in setup_wild (thd=0x7f9c20000d90, tables=0x7f9c200128e0, fields=..., sum_func_list=0x7f9c20013320, wild_num=1, hidden_bit_fields=0x7f9c200053a0) at /10.2/src/sql/sql_base.cc:7151
#9  0x000055993dd41931 in JOIN::prepare (this=0x7f9c20013000, tables_init=0x7f9c200128e0, wild_num=1, conds_init=0x0, og_num=0, order_init=0x0, skip_order_by=false, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0x7f9c200050d8, unit_arg=0x7f9c20004988) at /10.2/src/sql/sql_select.cc:796
#10 0x000055993dd4c51a in mysql_select (thd=0x7f9c20000d90, tables=0x7f9c200128e0, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f9c20012fe0, unit=0x7f9c20004988, select_lex=0x7f9c200050d8) at /10.2/src/sql/sql_select.cc:3827
#11 0x000055993dd40720 in handle_select (thd=0x7f9c20000d90, lex=0x7f9c200048c8, result=0x7f9c20012fe0, setup_tables_done_option=0) at /10.2/src/sql/sql_select.cc:361
#12 0x000055993dd0ad86 in execute_sqlcom_select (thd=0x7f9c20000d90, all_tables=0x7f9c200128e0) at /10.2/src/sql/sql_parse.cc:6271
#13 0x000055993dd018fa in mysql_execute_command (thd=0x7f9c20000d90) at /10.2/src/sql/sql_parse.cc:3582
#14 0x000055993dd0eb42 in mysql_parse (thd=0x7f9c20000d90, rawbuf=0x7f9c20012708 "SELECT * FROM t1", length=16, parser_state=0x7f9c7ad80560, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:7793
#15 0x000055993dcfcd9d in dispatch_command (command=COM_QUERY, thd=0x7f9c20000d90, packet=0x7f9c20008b61 "SELECT * FROM t1", packet_length=16, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:1827
#16 0x000055993dcfb898 in do_command (thd=0x7f9c20000d90) at /10.2/src/sql/sql_parse.cc:1381
#17 0x000055993de57661 in do_handle_one_connection (connect=0x559940c2fac0) at /10.2/src/sql/sql_connect.cc:1336
#18 0x000055993de573c6 in handle_one_connection (arg=0x559940c2fac0) at /10.2/src/sql/sql_connect.cc:1241
#19 0x000055993e680ec4 in pfs_spawn_thread (arg=0x559940c12d80) at /10.2/src/storage/perfschema/pfs.cc:1869
#20 0x00007f9c80f5b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#21 0x00007f9c80b36293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

CREATE TABLE t1 (v2 INT AS ( USER () LIKE 'x')) ;
 SELECT 1 FROM t1 ORDER BY v2 ;
 ALTER TABLE t1 ADD i int;

10.2 1f1d5606e08c928e3da98b

#3  <signal handler called>
#4  0x000055cf0812ce91 in Item_args::walk_args (this=0x7f59e8035960, processor=&virtual table offset 1008, walk_subquery=false, arg=0x7f5a367ee4a0) at /10.2/src/sql/item.h:4134
#5  0x000055cf085870b7 in Item_func_like::walk (this=0x7f59e80358d8, processor=&virtual table offset 1008, walk_subquery=false, arg=0x7f5a367ee4a0) at /10.2/src/sql/item_cmpfunc.h:2018
#6  0x000055cf0825e0d1 in mysql_prepare_create_table (thd=0x7f59e8000d90, create_info=0x7f5a367f1250, alter_info=0x7f5a367f11a0, db_options=0x7f5a367ee8cc, file=0x7f59e80132a0, key_info_buffer=0x7f5a367eff90, key_count=0x7f5a367eff04, create_table_mode=-2, db=..., table_name=...) at /10.2/src/sql/sql_table.cc:4200
#7  0x000055cf0825fac6 in mysql_create_frm_image (thd=0x7f59e8000d90, db=0x7f59e8012e00 "test", table_name=0x7f59e80127a8 "t1", create_info=0x7f5a367f1250, alter_info=0x7f5a367f11a0, create_table_mode=-2, key_info=0x7f5a367eff90, key_count=0x7f5a367eff04, frm=0x7f5a367effd0) at /10.2/src/sql/sql_table.cc:4747
#8  0x000055cf0826057a in create_table_impl (thd=0x7f59e8000d90, orig_db=0x7f59e8012e00 "test", orig_table_name=0x7f59e80127a8 "t1", db=0x7f59e8012e00 "test", table_name=0x7f5a367f0670 "#sql-619cc_9", path=0x7f5a367f0edc "./test/#sql-619cc_9", options=..., create_info=0x7f5a367f1250, alter_info=0x7f5a367f11a0, create_table_mode=-2, is_trans=0x0, key_info=0x7f5a367eff90, key_count=0x7f5a367eff04, frm=0x7f5a367effd0) at /10.2/src/sql/sql_table.cc:4996
#9  0x000055cf0826c8d1 in mysql_alter_table (thd=0x7f59e8000d90, new_db=0x7f59e8012e00 "test", new_name=0x0, create_info=0x7f5a367f1250, table_list=0x7f59e80127e0, alter_info=0x7f5a367f11a0, order_num=0, order=0x0, ignore=false) at /10.2/src/sql/sql_table.cc:9531
#10 0x000055cf082ebc6c in Sql_cmd_alter_table::execute (this=0x7f59e8012ef0, thd=0x7f59e8000d90) at /10.2/src/sql/sql_alter.cc:333
#11 0x000055cf08198cdc in mysql_execute_command (thd=0x7f59e8000d90) at /10.2/src/sql/sql_parse.cc:6017
#12 0x000055cf0819db42 in mysql_parse (thd=0x7f59e8000d90, rawbuf=0x7f59e8012708 "ALTER TABLE t1 ADD i int", length=24, parser_state=0x7f5a367f2560, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:7793
#13 0x000055cf0818bd9d in dispatch_command (command=COM_QUERY, thd=0x7f59e8000d90, packet=0x7f59e8008b61 "ALTER TABLE t1 ADD i int", packet_length=24, is_com_multi=false, is_next_command=false) at /10.2/src/sql/sql_parse.cc:1827
#14 0x000055cf0818a898 in do_command (thd=0x7f59e8000d90) at /10.2/src/sql/sql_parse.cc:1381
#15 0x000055cf082e6661 in do_handle_one_connection (connect=0x55cf0b5ead10) at /10.2/src/sql/sql_connect.cc:1336
#16 0x000055cf082e63c6 in handle_one_connection (arg=0x55cf0b5ead10) at /10.2/src/sql/sql_connect.cc:1241
#17 0x000055cf08b0fec4 in pfs_spawn_thread (arg=0x55cf0b5cdfd0) at /10.2/src/storage/perfschema/pfs.cc:1869
#18 0x00007f5a3c9cd609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#19 0x00007f5a3c5a8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Generated at Thu Feb 08 09:45:18 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.