added a comment - - edited Thanks!
I repeated on 10.2-10.9, with InnoDB/MyIsam, probably the same as MDEV-26407
CREATE TABLE t1 (a int primary key , b int DEFAULT (1 IN (dayname(a), '2' ))) ;
UPDATE t1 SET a = 1;
10.2 0f56e21efa68ba3b37d117
mysqld: /10.2/src/sql/field.cc:2203: virtual bool Field_num::get_date(MYSQL_TIME*, ulonglong): Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' failed.
220316 14:05:10 [ERROR] mysqld got signal 6 ;
Server version: 10.2.44-MariaDB-debug-log
/lib/x86_64-linux-gnu/libc.so.6(+0x34006)[0x7fcd927fe006]
sql/field.cc:2204(Field_num::get_date(st_mysql_time*, unsigned long long))[0x55841df2f4ae]
sql/item.cc:2841(Item_field::get_date(st_mysql_time*, unsigned long long))[0x55841e002117]
sql/item.cc:151(Item::get_date_with_conversion(st_mysql_time*, unsigned long long))[0x55841dfebcc0]
sql/item_timefunc.cc:1096(weekday_from_item(Item*, bool*, bool))[0x55841e2110d8]
sql/item_timefunc.cc:1126(Item_func_dayname::val_str(String*))[0x55841e2117d5]
sql/item_strfunc.cc:129(Item_str_func::val_real())[0x55841e15e1ab]
sql/item_cmpfunc.cc:3809(in_double::set(unsigned int, Item*))[0x55841e080b70]
sql/item_cmpfunc.cc:4218(Item_func_in::create_array(THD*))[0x55841e084507]
sql/item_cmpfunc.cc:4375(Item_func_in::fix_length_and_dec())[0x55841e0859eb]
sql/item_func.cc:230(Item_func::fix_fields(THD*, Item**))[0x55841e0df8a5]
sql/item_cmpfunc.cc:4128(Item_func_in::fix_fields(THD*, Item**))[0x55841e083803]
sql/table.cc:2814(fix_vcol_expr(THD*, Virtual_column_info*))[0x55841dc34f18]
sql/table.cc:2842(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x55841dc354f7]
sql/sql_base.cc:4987(TABLE::fix_vcol_exprs(THD*))[0x55841d855bd7]
sql/sql_base.cc:5019(fix_all_session_vcol_exprs(THD*, TABLE_LIST*))[0x55841d8560b3]
sql/sql_base.cc:5190(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x55841d857185]
sql/sql_update.cc:314(mysql_update(THD*, TABLE_LIST*, List<Item>&, List<Item>&, Item*, unsigned int, st_order*, unsigned long long, enum_duplicates, bool, unsigned long long*, unsigned long long*))[0x55841dbf74e9]
sql/sql_parse.cc:4056(mysql_execute_command(THD*))[0x55841d97563c]
sql/sql_parse.cc:7793(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55841d98ed10]
sql/sql_parse.cc:1830(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55841d967f15]
sql/sql_parse.cc:1381(do_command(THD*))[0x55841d964ce0]
sql/sql_connect.cc:1336(do_handle_one_connection(CONNECT*))[0x55841dcf1316]
sql/sql_connect.cc:1242(handle_one_connection)[0x55841dcf0bd9]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x55841f091a22]
nptl/pthread_create.c:478(start_thread)[0x7fcd9317b609]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7fcd928e9163]
Query (0x62b000000290): UPDATE t1 SET a = 1
on 10.4+:
10.4 069139a549a62f26d5
mysqld: /10.4/src/sql/field.cc:2130: virtual bool Field_int::get_date(MYSQL_TIME*, date_mode_t): Assertion `marked_for_read()' failed.
220316 14:06:57 [ERROR] mysqld got signal 6 ;
Server version: 10.4.25-MariaDB-debug-log
/lib/x86_64-linux-gnu/libc.so.6(+0x34006)[0x7fa5e0944006]
sql/field.cc:2131(Field_int::get_date(st_mysql_time*, date_mode_t))[0x557da6db2ff6]
sql/item.cc:3264(Item_field::get_date(THD*, st_mysql_time*, date_mode_t))[0x557da6eaf09d]
sql/sql_type.cc:904(Temporal_with_date::make_from_item(THD*, Item*, date_mode_t))[0x557da6bf4e12]
sql/sql_type.h:1946(Temporal_with_date::Temporal_with_date(THD*, Item*, date_mode_t))[0x557da63e9f0c]
sql/sql_type.h:2226(Datetime::Datetime(THD*, Item*, date_mode_t))[0x557da63ea3a7]
sql/item_timefunc.cc:1143(Item_func_dayname::val_str(String*))[0x557da70f3fd3]
sql/item_strfunc.cc:150(Item_str_func::val_real())[0x557da7024b7a]
sql/item_cmpfunc.cc:3867(in_double::set(unsigned int, Item*))[0x557da6f2f4ca]
sql/item_cmpfunc.cc:4431(Item_func_in::fix_in_vector())[0x557da6f3489d]
sql/item_cmpfunc.h:2400(Item_func_in::fix_for_scalar_comparison_using_bisection(THD*))[0x557da6c3c57e]
sql/sql_type.cc:5406(Type_handler_real_result::Item_func_in_fix_comparator_compatible_types(THD*, Item_func_in*) const)[0x557da6c0d8a0]
sql/item_cmpfunc.cc:4396(Item_func_in::fix_length_and_dec())[0x557da6f34418]
sql/item_func.cc:370(Item_func::fix_fields(THD*, Item**))[0x557da6f9a238]
sql/item_cmpfunc.cc:4322(Item_func_in::fix_fields(THD*, Item**))[0x557da6f339f5]
sql/table.cc:3270(fix_vcol_expr(THD*, Virtual_column_info*))[0x557da69b9be4]
sql/table.cc:3298(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x557da69ba2ba]
sql/sql_base.cc:5488(TABLE::fix_vcol_exprs(THD*))[0x557da6520487]
sql/sql_base.cc:5520(fix_all_session_vcol_exprs(THD*, TABLE_LIST*))[0x557da6520963]
sql/sql_base.cc:5690(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x557da6521b80]
sql/sql_update.cc:443(mysql_update(THD*, TABLE_LIST*, List<Item>&, List<Item>&, Item*, unsigned int, st_order*, unsigned long long, bool, unsigned long long*, unsigned long long*))[0x557da696fd8c]
sql/sql_parse.cc:4434(mysql_execute_command(THD*))[0x557da66a87f3]
sql/sql_parse.cc:7995(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x557da66c174d]
sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x557da6697ed4]
sql/sql_parse.cc:1373(do_command(THD*))[0x557da6694951]
sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x557da6a9030d]
sql/sql_connect.cc:1317(handle_one_connection)[0x557da6a8fa66]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x557da779109d]
nptl/pthread_create.c:478(start_thread)[0x7fa5e0e5e609]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7fa5e0a2f163]
Query (0x62b0000a1290): UPDATE t1 SET a = 1
Similar with insert instead of update:
CREATE TABLE t1 (a int primary key , b int DEFAULT (1 IN (dayname(a), '2' ))) ;
insert into t1(a) values (1);
If there is no index:
CREATE TABLE t1 (a int , b int DEFAULT (1 IN (dayname(a), '2' ))) ;
insert into t1(a) values (1);
insert into t1(a) values (1);
10.2 0f56e21efa68ba3b37d117
Version: '10.2.44-MariaDB-debug-log'
=================================================================
==289599==ERROR: AddressSanitizer: use-after-poison on address 0x62b000000dd0 at pc 0x56107b2b87c3 bp 0x7f59224b5eb0 sp 0x7f59224b5ea0
READ of size 8 at 0x62b000000dd0 thread T27
#0 0x56107b2b87c2 in Item_func_in::cleanup() /10.2/src/sql/item_cmpfunc.h:1673
#1 0x56107af4bdbf in Item::cleanup_processor(void*) /10.2/src/sql/item.cc:680
#2 0x56107a6b5bea in Item::cleanup_excluding_fields_processor(void*) /10.2/src/sql/item.h:1687
#3 0x56107a7ccc80 in Item_func_or_sum::walk(bool (Item::*)(void*), bool, void*) /10.2/src/sql/item.h:4422
#4 0x56107ab90429 in fix_session_vcol_expr(THD*, Virtual_column_info*) /10.2/src/sql/table.cc:2840
#5 0x56107a7b0bd6 in TABLE::fix_vcol_exprs(THD*) /10.2/src/sql/sql_base.cc:4988
#6 0x56107a7b10b2 in fix_all_session_vcol_exprs /10.2/src/sql/sql_base.cc:5019
#7 0x56107a7b2184 in lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int) /10.2/src/sql/sql_base.cc:5190
#8 0x56107a7b0062 in open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*) /10.2/src/sql/sql_base.cc:4871
#9 0x56107a7273e3 in open_and_lock_tables(THD*, TABLE_LIST*, bool, unsigned int) /10.2/src/sql/sql_base.h:508
#10 0x56107a868149 in mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) /10.2/src/sql/sql_insert.cc:758
#11 0x56107a8d1434 in mysql_execute_command(THD*) /10.2/src/sql/sql_parse.cc:4217
#12 0x56107a8e9d0f in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /10.2/src/sql/sql_parse.cc:7793
#13 0x56107a8c2f14 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /10.2/src/sql/sql_parse.cc:1827
#14 0x56107a8bfcdf in do_command(THD*) /10.2/src/sql/sql_parse.cc:1381
#15 0x56107ac4c315 in do_handle_one_connection(CONNECT*) /10.2/src/sql/sql_connect.cc:1336
#16 0x56107ac4bbd8 in handle_one_connection /10.2/src/sql/sql_connect.cc:1241
#17 0x56107bfeca21 in pfs_spawn_thread /10.2/src/storage/perfschema/pfs.cc:1869
#18 0x7f5939546608 in start_thread /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:477
#19 0x7f5938cb4162 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f162)
0x62b000000dd0 is located 3024 bytes inside of 24716-byte region [0x62b000000200,0x62b00000628c)
allocated by thread T27 here:
#0 0x7f593966e808 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144
#1 0x56107c10a926 in sf_malloc /10.2/src/mysys/safemalloc.c:118
#2 0x56107c0d68c1 in my_malloc /10.2/src/mysys/my_malloc.c:101
#3 0x56107c0b36a5 in reset_root_defaults /10.2/src/mysys/my_alloc.c:147
#4 0x56107a807437 in THD::init_for_queries() /10.2/src/sql/sql_class.cc:1316
#5 0x56107ac4b54b in prepare_new_connection_state(THD*) /10.2/src/sql/sql_connect.cc:1172
#6 0x56107ac4bc22 in thd_prepare_connection(THD*) /10.2/src/sql/sql_connect.cc:1256
#7 0x56107ac4c240 in do_handle_one_connection(CONNECT*) /10.2/src/sql/sql_connect.cc:1326
#8 0x56107ac4bbd8 in handle_one_connection /10.2/src/sql/sql_connect.cc:1241
#9 0x56107bfeca21 in pfs_spawn_thread /10.2/src/storage/perfschema/pfs.cc:1869
#10 0x7f5939546608 in start_thread /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:477
Thread T27 created by T0 here:
#0 0x7f593959b815 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208
#1 0x56107bfece12 in spawn_thread_v1 /10.2/src/storage/perfschema/pfs.cc:1919
#2 0x56107a662293 in inline_mysql_thread_create /10.2/src/include/mysql/psi/mysql_thread.h:1246
#3 0x56107a67a1ea in create_thread_to_handle_connection(CONNECT*) /10.2/src/sql/mysqld.cc:6580
#4 0x56107a67a985 in create_new_thread /10.2/src/sql/mysqld.cc:6650
#5 0x56107a67bb17 in handle_connections_sockets() /10.2/src/sql/mysqld.cc:6908
#6 0x56107a67953b in mysqld_main(int, char**) /10.2/src/sql/mysqld.cc:6199
#7 0x56107a660b4c in main /10.2/src/sql/main.cc:25
#8 0x7f5938bb90b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
SUMMARY: AddressSanitizer: use-after-poison /10.2/src/sql/item_cmpfunc.h:1673 in Item_func_in::cleanup()
Shadow bytes around the buggy address:
0x0c567fff8160: f7 00 00 00 f7 02 f7 00 00 00 00 00 00 00 00 00
0x0c567fff8170: 00 00 00 00 00 00 00 00 00 f7 00 00 f7 00 00 f7
0x0c567fff8180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 00
0x0c567fff8190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7
0x0c567fff81a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c567fff81b0: f7 00 f7 00 00 00 00 00 00 f7[f7]f7 f7 f7 f7 f7
0x0c567fff81c0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81d0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81e0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81f0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff8200: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==289599==ABORTING
----------SERVER LOG END-------------
this test also crashes on non-debug:
10.6.7
Version: '10.6.7-MariaDB'
220316 14:01:32 [ERROR] mysqld got signal 11 ;
Server version: 10.6.7-MariaDB
sigaction.c:0(__restore_rt)[0x7ff91686b3c0]
sql/item_cmpfunc.h:2115(Predicant_to_list_comparator::Predicant_to_value_comparator::cleanup())[0x564631b2c1d6]
sql/item.cc:574(Item::cleanup_processor(void*))[0x564631a00cfa]
sql/table.cc:3624(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x564631888bec]
sql/sql_base.cc:5446(TABLE::fix_vcol_exprs(THD*))[0x56463175cc32]
sql/sql_base.cc:5480(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x56463175d102]
sql/sql_base.cc:5274(open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*))[0x56463175e702]
sql/sql_insert.cc:752(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool, select_result*))[0x5646317928f8]
sql/sql_parse.cc:4567(mysql_execute_command(THD*, bool))[0x5646317c6f48]
sql/sql_parse.cc:8030(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x5646317c959b]
sql/sql_parse.cc:1955(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x5646317cb7e7]
sql/sql_parse.cc:1406(do_command(THD*, bool))[0x5646317cce83]
sql/sql_connect.cc:1418(do_handle_one_connection(CONNECT*, bool))[0x5646318c2be7]
sql/sql_connect.cc:1318(handle_one_connection)[0x5646318c2e84]
perfschema/pfs.cc:2204(pfs_spawn_thread)[0x564631c560cc]
nptl/pthread_create.c:478(start_thread)[0x7ff91685f609]
??:0(clone)[0x7ff91644b163]
Query (0x7ff8c40108d0): insert into t1(a) values (1)
Thanks!
I repeated on 10.2-10.9, with InnoDB/MyIsam, probably the same as
MDEV-2640710.2 0f56e21efa68ba3b37d117
mysqld: /10.2/src/sql/field.cc:2203: virtual bool Field_num::get_date(MYSQL_TIME*, ulonglong): Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) || (!(ptr >= table->record[0] && ptr < table->record[0] + table->s->reclength)))' failed.
220316 14:05:10 [ERROR] mysqld got signal 6 ;
Server version: 10.2.44-MariaDB-debug-log
/lib/x86_64-linux-gnu/libc.so.6(+0x34006)[0x7fcd927fe006]
sql/field.cc:2204(Field_num::get_date(st_mysql_time*, unsigned long long))[0x55841df2f4ae]
sql/item.cc:2841(Item_field::get_date(st_mysql_time*, unsigned long long))[0x55841e002117]
sql/item.cc:151(Item::get_date_with_conversion(st_mysql_time*, unsigned long long))[0x55841dfebcc0]
sql/item_timefunc.cc:1096(weekday_from_item(Item*, bool*, bool))[0x55841e2110d8]
sql/item_timefunc.cc:1126(Item_func_dayname::val_str(String*))[0x55841e2117d5]
sql/item_strfunc.cc:129(Item_str_func::val_real())[0x55841e15e1ab]
sql/item_cmpfunc.cc:3809(in_double::set(unsigned int, Item*))[0x55841e080b70]
sql/item_cmpfunc.cc:4218(Item_func_in::create_array(THD*))[0x55841e084507]
sql/item_cmpfunc.cc:4375(Item_func_in::fix_length_and_dec())[0x55841e0859eb]
sql/item_func.cc:230(Item_func::fix_fields(THD*, Item**))[0x55841e0df8a5]
sql/item_cmpfunc.cc:4128(Item_func_in::fix_fields(THD*, Item**))[0x55841e083803]
sql/table.cc:2814(fix_vcol_expr(THD*, Virtual_column_info*))[0x55841dc34f18]
sql/table.cc:2842(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x55841dc354f7]
sql/sql_base.cc:4987(TABLE::fix_vcol_exprs(THD*))[0x55841d855bd7]
sql/sql_base.cc:5019(fix_all_session_vcol_exprs(THD*, TABLE_LIST*))[0x55841d8560b3]
sql/sql_base.cc:5190(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x55841d857185]
sql/sql_update.cc:314(mysql_update(THD*, TABLE_LIST*, List<Item>&, List<Item>&, Item*, unsigned int, st_order*, unsigned long long, enum_duplicates, bool, unsigned long long*, unsigned long long*))[0x55841dbf74e9]
sql/sql_parse.cc:4056(mysql_execute_command(THD*))[0x55841d97563c]
sql/sql_parse.cc:7793(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55841d98ed10]
sql/sql_parse.cc:1830(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55841d967f15]
sql/sql_parse.cc:1381(do_command(THD*))[0x55841d964ce0]
sql/sql_connect.cc:1336(do_handle_one_connection(CONNECT*))[0x55841dcf1316]
sql/sql_connect.cc:1242(handle_one_connection)[0x55841dcf0bd9]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x55841f091a22]
nptl/pthread_create.c:478(start_thread)[0x7fcd9317b609]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7fcd928e9163]
Query (0x62b000000290): UPDATE t1 SET a = 1
on 10.4+:
10.4 069139a549a62f26d5
mysqld: /10.4/src/sql/field.cc:2130: virtual bool Field_int::get_date(MYSQL_TIME*, date_mode_t): Assertion `marked_for_read()' failed.
220316 14:06:57 [ERROR] mysqld got signal 6 ;
Server version: 10.4.25-MariaDB-debug-log
/lib/x86_64-linux-gnu/libc.so.6(+0x34006)[0x7fa5e0944006]
sql/field.cc:2131(Field_int::get_date(st_mysql_time*, date_mode_t))[0x557da6db2ff6]
sql/item.cc:3264(Item_field::get_date(THD*, st_mysql_time*, date_mode_t))[0x557da6eaf09d]
sql/sql_type.cc:904(Temporal_with_date::make_from_item(THD*, Item*, date_mode_t))[0x557da6bf4e12]
sql/sql_type.h:1946(Temporal_with_date::Temporal_with_date(THD*, Item*, date_mode_t))[0x557da63e9f0c]
sql/sql_type.h:2226(Datetime::Datetime(THD*, Item*, date_mode_t))[0x557da63ea3a7]
sql/item_timefunc.cc:1143(Item_func_dayname::val_str(String*))[0x557da70f3fd3]
sql/item_strfunc.cc:150(Item_str_func::val_real())[0x557da7024b7a]
sql/item_cmpfunc.cc:3867(in_double::set(unsigned int, Item*))[0x557da6f2f4ca]
sql/item_cmpfunc.cc:4431(Item_func_in::fix_in_vector())[0x557da6f3489d]
sql/item_cmpfunc.h:2400(Item_func_in::fix_for_scalar_comparison_using_bisection(THD*))[0x557da6c3c57e]
sql/sql_type.cc:5406(Type_handler_real_result::Item_func_in_fix_comparator_compatible_types(THD*, Item_func_in*) const)[0x557da6c0d8a0]
sql/item_cmpfunc.cc:4396(Item_func_in::fix_length_and_dec())[0x557da6f34418]
sql/item_func.cc:370(Item_func::fix_fields(THD*, Item**))[0x557da6f9a238]
sql/item_cmpfunc.cc:4322(Item_func_in::fix_fields(THD*, Item**))[0x557da6f339f5]
sql/table.cc:3270(fix_vcol_expr(THD*, Virtual_column_info*))[0x557da69b9be4]
sql/table.cc:3298(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x557da69ba2ba]
sql/sql_base.cc:5488(TABLE::fix_vcol_exprs(THD*))[0x557da6520487]
sql/sql_base.cc:5520(fix_all_session_vcol_exprs(THD*, TABLE_LIST*))[0x557da6520963]
sql/sql_base.cc:5690(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x557da6521b80]
sql/sql_update.cc:443(mysql_update(THD*, TABLE_LIST*, List<Item>&, List<Item>&, Item*, unsigned int, st_order*, unsigned long long, bool, unsigned long long*, unsigned long long*))[0x557da696fd8c]
sql/sql_parse.cc:4434(mysql_execute_command(THD*))[0x557da66a87f3]
sql/sql_parse.cc:7995(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x557da66c174d]
sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x557da6697ed4]
sql/sql_parse.cc:1373(do_command(THD*))[0x557da6694951]
sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x557da6a9030d]
sql/sql_connect.cc:1317(handle_one_connection)[0x557da6a8fa66]
perfschema/pfs.cc:1871(pfs_spawn_thread)[0x557da779109d]
nptl/pthread_create.c:478(start_thread)[0x7fa5e0e5e609]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7fa5e0a2f163]
Query (0x62b0000a1290): UPDATE t1 SET a = 1
Similar with insert instead of update:
If there is no index:
10.2 0f56e21efa68ba3b37d117
Version: '10.2.44-MariaDB-debug-log'
=================================================================
==289599==ERROR: AddressSanitizer: use-after-poison on address 0x62b000000dd0 at pc 0x56107b2b87c3 bp 0x7f59224b5eb0 sp 0x7f59224b5ea0
READ of size 8 at 0x62b000000dd0 thread T27
#0 0x56107b2b87c2 in Item_func_in::cleanup() /10.2/src/sql/item_cmpfunc.h:1673
#1 0x56107af4bdbf in Item::cleanup_processor(void*) /10.2/src/sql/item.cc:680
#2 0x56107a6b5bea in Item::cleanup_excluding_fields_processor(void*) /10.2/src/sql/item.h:1687
#3 0x56107a7ccc80 in Item_func_or_sum::walk(bool (Item::*)(void*), bool, void*) /10.2/src/sql/item.h:4422
#4 0x56107ab90429 in fix_session_vcol_expr(THD*, Virtual_column_info*) /10.2/src/sql/table.cc:2840
#5 0x56107a7b0bd6 in TABLE::fix_vcol_exprs(THD*) /10.2/src/sql/sql_base.cc:4988
#6 0x56107a7b10b2 in fix_all_session_vcol_exprs /10.2/src/sql/sql_base.cc:5019
#7 0x56107a7b2184 in lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int) /10.2/src/sql/sql_base.cc:5190
#8 0x56107a7b0062 in open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*) /10.2/src/sql/sql_base.cc:4871
#9 0x56107a7273e3 in open_and_lock_tables(THD*, TABLE_LIST*, bool, unsigned int) /10.2/src/sql/sql_base.h:508
#10 0x56107a868149 in mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) /10.2/src/sql/sql_insert.cc:758
#11 0x56107a8d1434 in mysql_execute_command(THD*) /10.2/src/sql/sql_parse.cc:4217
#12 0x56107a8e9d0f in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /10.2/src/sql/sql_parse.cc:7793
#13 0x56107a8c2f14 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /10.2/src/sql/sql_parse.cc:1827
#14 0x56107a8bfcdf in do_command(THD*) /10.2/src/sql/sql_parse.cc:1381
#15 0x56107ac4c315 in do_handle_one_connection(CONNECT*) /10.2/src/sql/sql_connect.cc:1336
#16 0x56107ac4bbd8 in handle_one_connection /10.2/src/sql/sql_connect.cc:1241
#17 0x56107bfeca21 in pfs_spawn_thread /10.2/src/storage/perfschema/pfs.cc:1869
#18 0x7f5939546608 in start_thread /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:477
#19 0x7f5938cb4162 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f162)
0x62b000000dd0 is located 3024 bytes inside of 24716-byte region [0x62b000000200,0x62b00000628c)
allocated by thread T27 here:
#0 0x7f593966e808 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144
#1 0x56107c10a926 in sf_malloc /10.2/src/mysys/safemalloc.c:118
#2 0x56107c0d68c1 in my_malloc /10.2/src/mysys/my_malloc.c:101
#3 0x56107c0b36a5 in reset_root_defaults /10.2/src/mysys/my_alloc.c:147
#4 0x56107a807437 in THD::init_for_queries() /10.2/src/sql/sql_class.cc:1316
#5 0x56107ac4b54b in prepare_new_connection_state(THD*) /10.2/src/sql/sql_connect.cc:1172
#6 0x56107ac4bc22 in thd_prepare_connection(THD*) /10.2/src/sql/sql_connect.cc:1256
#7 0x56107ac4c240 in do_handle_one_connection(CONNECT*) /10.2/src/sql/sql_connect.cc:1326
#8 0x56107ac4bbd8 in handle_one_connection /10.2/src/sql/sql_connect.cc:1241
#9 0x56107bfeca21 in pfs_spawn_thread /10.2/src/storage/perfschema/pfs.cc:1869
#10 0x7f5939546608 in start_thread /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:477
Thread T27 created by T0 here:
#0 0x7f593959b815 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208
#1 0x56107bfece12 in spawn_thread_v1 /10.2/src/storage/perfschema/pfs.cc:1919
#2 0x56107a662293 in inline_mysql_thread_create /10.2/src/include/mysql/psi/mysql_thread.h:1246
#3 0x56107a67a1ea in create_thread_to_handle_connection(CONNECT*) /10.2/src/sql/mysqld.cc:6580
#4 0x56107a67a985 in create_new_thread /10.2/src/sql/mysqld.cc:6650
#5 0x56107a67bb17 in handle_connections_sockets() /10.2/src/sql/mysqld.cc:6908
#6 0x56107a67953b in mysqld_main(int, char**) /10.2/src/sql/mysqld.cc:6199
#7 0x56107a660b4c in main /10.2/src/sql/main.cc:25
#8 0x7f5938bb90b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
SUMMARY: AddressSanitizer: use-after-poison /10.2/src/sql/item_cmpfunc.h:1673 in Item_func_in::cleanup()
Shadow bytes around the buggy address:
0x0c567fff8160: f7 00 00 00 f7 02 f7 00 00 00 00 00 00 00 00 00
0x0c567fff8170: 00 00 00 00 00 00 00 00 00 f7 00 00 f7 00 00 f7
0x0c567fff8180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 00
0x0c567fff8190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7
0x0c567fff81a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c567fff81b0: f7 00 f7 00 00 00 00 00 00 f7[f7]f7 f7 f7 f7 f7
0x0c567fff81c0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81d0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81e0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff81f0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
0x0c567fff8200: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==289599==ABORTING
----------SERVER LOG END-------------
this test also crashes on non-debug:
10.6.7
Version: '10.6.7-MariaDB'
220316 14:01:32 [ERROR] mysqld got signal 11 ;
Server version: 10.6.7-MariaDB
sigaction.c:0(__restore_rt)[0x7ff91686b3c0]
sql/item_cmpfunc.h:2115(Predicant_to_list_comparator::Predicant_to_value_comparator::cleanup())[0x564631b2c1d6]
sql/item.cc:574(Item::cleanup_processor(void*))[0x564631a00cfa]
sql/table.cc:3624(fix_session_vcol_expr(THD*, Virtual_column_info*))[0x564631888bec]
sql/sql_base.cc:5446(TABLE::fix_vcol_exprs(THD*))[0x56463175cc32]
sql/sql_base.cc:5480(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int))[0x56463175d102]
sql/sql_base.cc:5274(open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*))[0x56463175e702]
sql/sql_insert.cc:752(mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool, select_result*))[0x5646317928f8]
sql/sql_parse.cc:4567(mysql_execute_command(THD*, bool))[0x5646317c6f48]
sql/sql_parse.cc:8030(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x5646317c959b]
sql/sql_parse.cc:1955(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x5646317cb7e7]
sql/sql_parse.cc:1406(do_command(THD*, bool))[0x5646317cce83]
sql/sql_connect.cc:1418(do_handle_one_connection(CONNECT*, bool))[0x5646318c2be7]
sql/sql_connect.cc:1318(handle_one_connection)[0x5646318c2e84]
perfschema/pfs.cc:2204(pfs_spawn_thread)[0x564631c560cc]
nptl/pthread_create.c:478(start_thread)[0x7ff91685f609]
??:0(clone)[0x7ff91644b163]
Query (0x7ff8c40108d0): insert into t1(a) values (1)