|
The test case below, very similar to the original one, causes the same assertion failure on all 10.2+.
CREATE TABLE t1 (a INT);
|
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @a=1;
|
CREATE TRIGGER tr2 BEFORE DELETE ON t1 FOR EACH ROW SET @b=1;
|
SET TMP_DISK_TABLE_SIZE= 1024;
|
SHOW TRIGGERS;
|
|
# Cleanup
|
DROP TABLE t1;
|
|
10.2 737c3025
|
2020-07-12 23:47:59 140142775707392 [ERROR] mysqld: The table '(temporary)' is full
|
mysqld: /data/src/10.2/sql/sql_trigger.cc:1445: static bool Table_triggers_list::check_n_load(THD*, const char*, const char*, TABLE*, bool): Assertion `!parse_error || lex.sphead == 0' failed.
|
200712 23:47:59 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f758da9cf12 in __GI___assert_fail (assertion=0x562782df2d30 "!parse_error || lex.sphead == 0", file=0x562782df2b80 "/data/src/10.2/sql/sql_trigger.cc", line=1445, function=0x562782df3400 <Table_triggers_list::check_n_load(THD*, char const*, char const*, TABLE*, bool)::__PRETTY_FUNCTION__> "static bool Table_triggers_list::check_n_load(THD*, const char*, const char*, TABLE*, bool)") at assert.c:101
|
#8 0x000056278243762e in Table_triggers_list::check_n_load (thd=0x7f756c000af0, db=0x7f756c082ce8 "test", table_name=0x7f756c082ced "t1", table=0x7f756c061520, names_only=false) at /data/src/10.2/sql/sql_trigger.cc:1445
|
#9 0x00005627822e37c5 in open_table_entry_fini (thd=0x7f756c000af0, share=0x7f756c0827d8, entry=0x7f756c061520) at /data/src/10.2/sql/sql_base.cc:2777
|
#10 0x00005627822e1efd in open_table (thd=0x7f756c000af0, table_list=0x7f756c05d888, ot_ctx=0x7f75885ce260) at /data/src/10.2/sql/sql_base.cc:1951
|
#11 0x00005627822e4e94 in open_and_process_table (thd=0x7f756c000af0, tables=0x7f756c05d888, counter=0x7f75885ce324, flags=1026, prelocking_strategy=0x7f75885ce328, has_prelocking_list=false, ot_ctx=0x7f75885ce260) at /data/src/10.2/sql/sql_base.cc:3609
|
#12 0x00005627822e5d8c in open_tables (thd=0x7f756c000af0, options=..., start=0x7f75885ce310, counter=0x7f75885ce324, flags=1026, prelocking_strategy=0x7f75885ce328) at /data/src/10.2/sql/sql_base.cc:4076
|
#13 0x00005627822de658 in open_tables (thd=0x7f756c000af0, tables=0x7f75885ce310, counter=0x7f75885ce324, flags=1026, prelocking_strategy=0x7f75885ce328) at /data/src/10.2/sql/sql_base.h:249
|
#14 0x00005627822e781b in open_normal_and_derived_tables (thd=0x7f756c000af0, tables=0x7f756c05d888, flags=1026, dt_phases=35) at /data/src/10.2/sql/sql_base.cc:4908
|
#15 0x00005627823f07d7 in fill_schema_table_by_open (thd=0x7f756c000af0, is_show_fields_or_keys=false, table=0x7f756c009138, schema_table=0x5627836f4300 <schema_tables+2304>, orig_db_name=0x7f756c017818, orig_table_name=0x7f756c017e90, open_tables_state_backup=0x7f75885cfc30, can_deadlock=false) at /data/src/10.2/sql/sql_show.cc:4407
|
#16 0x00005627823f1fea in get_all_tables (thd=0x7f756c000af0, tables=0x7f756c013568, cond=0x0) at /data/src/10.2/sql/sql_show.cc:5050
|
#17 0x00005627824024e2 in get_schema_tables_result (join=0x7f756c0156f8, executed_place=PROCESSED_BY_JOIN_EXEC) at /data/src/10.2/sql/sql_show.cc:8461
|
#18 0x000056278239cb31 in JOIN::exec_inner (this=0x7f756c0156f8) at /data/src/10.2/sql/sql_select.cc:3602
|
#19 0x000056278239c1f8 in JOIN::exec (this=0x7f756c0156f8) at /data/src/10.2/sql/sql_select.cc:3433
|
#20 0x000056278239d3ae in mysql_select (thd=0x7f756c000af0, tables=0x7f756c013568, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x7f756c0156d8, unit=0x7f756c0046e8, select_lex=0x7f756c004e28) at /data/src/10.2/sql/sql_select.cc:3833
|
#21 0x000056278239156c in handle_select (thd=0x7f756c000af0, lex=0x7f756c004628, result=0x7f756c0156d8, setup_tables_done_option=0) at /data/src/10.2/sql/sql_select.cc:361
|
#22 0x000056278235d01c in execute_sqlcom_select (thd=0x7f756c000af0, all_tables=0x7f756c013568) at /data/src/10.2/sql/sql_parse.cc:6218
|
#23 0x000056278235389d in mysql_execute_command (thd=0x7f756c000af0) at /data/src/10.2/sql/sql_parse.cc:3524
|
#24 0x0000562782360d53 in mysql_parse (thd=0x7f756c000af0, rawbuf=0x7f756c012448 "SHOW TRIGGERS", length=13, parser_state=0x7f75885d1610, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7733
|
#25 0x000056278234f07f in dispatch_command (command=COM_QUERY, thd=0x7f756c000af0, packet=0x7f756c08cd71 "SHOW TRIGGERS", packet_length=13, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1824
|
#26 0x000056278234dafa in do_command (thd=0x7f756c000af0) at /data/src/10.2/sql/sql_parse.cc:1377
|
#27 0x00005627824a3a6f in do_handle_one_connection (connect=0x562784b84140) at /data/src/10.2/sql/sql_connect.cc:1336
|
#28 0x00005627824a37da in handle_one_connection (arg=0x562784b84140) at /data/src/10.2/sql/sql_connect.cc:1241
|
#29 0x0000562782cb9e26 in pfs_spawn_thread (arg=0x562784ad0e60) at /data/src/10.2/storage/perfschema/pfs.cc:1869
|
#30 0x00007f758fa254a4 in start_thread (arg=0x7f75885d2700) at pthread_create.c:456
|
#31 0x00007f758db59d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
Also, on non-debug ASAN builds, it reliably causes a SEGV, which translates into potential (but less reliable) crashes on regular release builds.
|
10.2 b0df247d non-debug ASAN
|
==26641==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x558aefc1e408 bp 0x7f4910ca4390 sp 0x7f4910ca4380 T5)
|
#0 0x558aefc1e407 in strxmov /data/src/10.2/strings/strxmov.c:53
|
#1 0x558aeeb33217 in Trigger::get_trigger_info(st_mysql_lex_string*, st_mysql_lex_string*, st_mysql_lex_string*) /data/src/10.2/sql/sql_trigger.cc:1723
|
#2 0x558aeeab52dc in store_trigger /data/src/10.2/sql/sql_show.cc:6673
|
#3 0x558aeeab66c0 in get_schema_triggers_record /data/src/10.2/sql/sql_show.cc:6755
|
#4 0x558aeea9e7a7 in fill_schema_table_by_open /data/src/10.2/sql/sql_show.cc:4452
|
#5 0x558aeead2657 in get_all_tables(THD*, TABLE_LIST*, Item*) /data/src/10.2/sql/sql_show.cc:5050
|
#6 0x558aeead6709 in get_schema_tables_result(JOIN*, enum_schema_table_state) /data/src/10.2/sql/sql_show.cc:8461
|
#7 0x558aeea88e43 in JOIN::exec_inner() /data/src/10.2/sql/sql_select.cc:3602
|
#8 0x558aeea8a94d in JOIN::exec() /data/src/10.2/sql/sql_select.cc:3433
|
#9 0x558aeea84928 in 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*) /data/src/10.2/sql/sql_select.cc:3833
|
#10 0x558aeea86c12 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/src/10.2/sql/sql_select.cc:361
|
#11 0x558aee77cb50 in execute_sqlcom_select /data/src/10.2/sql/sql_parse.cc:6218
|
#12 0x558aee9a1b87 in mysql_execute_command(THD*) /data/src/10.2/sql/sql_parse.cc:3524
|
#13 0x558aee9a9c43 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/src/10.2/sql/sql_parse.cc:7733
|
#14 0x558aee9af56b in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/src/10.2/sql/sql_parse.cc:1824
|
#15 0x558aee9b1fc2 in do_command(THD*) /data/src/10.2/sql/sql_parse.cc:1377
|
#16 0x558aeebf748f in do_handle_one_connection(CONNECT*) /data/src/10.2/sql/sql_connect.cc:1336
|
#17 0x558aeebf78ba in handle_one_connection /data/src/10.2/sql/sql_connect.cc:1241
|
#18 0x558aefae46d3 in pfs_spawn_thread /data/src/10.2/storage/perfschema/pfs.cc:1869
|
#19 0x7f491c8a04a3 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x74a3)
|
#20 0x7f491a9d4d0e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8d0e)
|
|
AddressSanitizer can not provide additional info.
|
SUMMARY: AddressSanitizer: SEGV /data/src/10.2/strings/strxmov.c:53 in strxmov
|
Thread T5 created by T0 here:
|
#0 0x7f491cae6f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
|
#1 0x558aefaee372 in spawn_thread_v1 /data/src/10.2/storage/perfschema/pfs.cc:1919
|
|
==26641==ABORTING
|
I keep the "regression" label for the sake of the initial test case.
|
|
The following testcase:
CREATE DATABASE transforms;
|
CREATE TABLE t1(c1 MEDIUMINT NULL, c2 BINARY(25) NOT NULL, c3 BIGINT(4) NULL, c4 BINARY(15) NOT NULL PRIMARY KEY, c5 MEDIUMINT NOT NULL UNIQUE KEY,c6 FIXED(10,8) NOT NULL DEFAULT 3.141592);
|
CREATE TRIGGER tr1_bu BEFORE UPDATE ON t1 FOR EACH ROW SET @a:=3;
|
create trigger trg1 before insert on t1 for each row set @a:= 1;
|
SET @@session.tmp_disk_table_size = False;
|
CREATE TABLE q(b TEXT CHARSET latin1, fulltext(b)) engine=TokuDB;
|
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'; ;
|
Can produce the same !parse_error || lex.sphead == 0 SIGABRT in 10.5.6 debug at 2bac9782aa81ad386beaf00eb126ccf2d15031a1:
|
10.5.6 2bac9782aa81ad386beaf00eb126ccf2d15031a1 (Debug)
|
mysqld: /test/10.5_dbg/sql/sql_trigger.cc:1460: static bool Table_triggers_list::check_n_load(THD*, const LEX_CSTRING*, const LEX_CSTRING*, TABLE*, bool): Assertion `!parse_error || lex.sphead == 0' failed.
|
|
10.5.6 2bac9782aa81ad386beaf00eb126ccf2d15031a1 (Debug)
|
Core was generated by `/test/MD150920-mariadb-10.5.6-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
|
Program terminated with signal SIGABRT, Aborted.
|
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
|
[Current thread is 1 (Thread 0x14748a972700 (LWP 1052624))]
|
(gdb) bt
|
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
|
#1 0x000014749314b8b1 in __GI_abort () at abort.c:79
|
#2 0x000014749313b42a in __assert_fail_base (fmt=0x1474932c2a38 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x56362455bf60 "!parse_error || lex.sphead == 0", file=file@entry=0x56362455bbc0 "/test/10.5_dbg/sql/sql_trigger.cc", line=line@entry=1460, function=function@entry=0x56362455c8e0 <Table_triggers_list::check_n_load(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, TABLE*, bool)::__PRETTY_FUNCTION__> "static bool Table_triggers_list::check_n_load(THD*, const LEX_CSTRING*, const LEX_CSTRING*, TABLE*, bool)") at assert.c:92
|
#3 0x000014749313b4a2 in __GI___assert_fail (assertion=assertion@entry=0x56362455bf60 "!parse_error || lex.sphead == 0", file=file@entry=0x56362455bbc0 "/test/10.5_dbg/sql/sql_trigger.cc", line=line@entry=1460, function=function@entry=0x56362455c8e0 <Table_triggers_list::check_n_load(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, TABLE*, bool)::__PRETTY_FUNCTION__> "static bool Table_triggers_list::check_n_load(THD*, const LEX_CSTRING*, const LEX_CSTRING*, TABLE*, bool)") at assert.c:101
|
#4 0x00005636239b4e98 in Table_triggers_list::check_n_load (thd=thd@entry=0x14746f015088, db=db@entry=0x14746ec81a10, table_name=table_name@entry=0x14746ec81a20, table=table@entry=0x14746f052088, names_only=names_only@entry=false) at /test/10.5_dbg/sql/sql_trigger.cc:1460
|
#5 0x000056362384d9a2 in open_table_entry_fini (entry=0x14746f052088, share=0x14746ec816a0, thd=0x14746f015088) at /test/10.5_dbg/sql/sql_base.cc:2920
|
#6 open_table (thd=thd@entry=0x14746f015088, table_list=table_list@entry=0x14746f1000e0, ot_ctx=ot_ctx@entry=0x14748a96ce30) at /test/10.5_dbg/sql/sql_base.cc:2007
|
#7 0x0000563623851cf2 in open_and_process_table (ot_ctx=0x14748a96ce30, has_prelocking_list=false, prelocking_strategy=0x14748a96cec8, flags=1090, counter=0x14748a96cec4, tables=0x14746f1000e0, thd=0x14746f015088) at /test/10.5_dbg/sql/sql_base.cc:3784
|
#8 open_tables (thd=thd@entry=0x14746f015088, options=@0x14748a96e618: {m_options = DDL_options_st::OPT_NONE}, start=start@entry=0x14748a96ceb8, counter=counter@entry=0x14748a96cec4, flags=flags@entry=1090, prelocking_strategy=prelocking_strategy@entry=0x14748a96cec8) at /test/10.5_dbg/sql/sql_base.cc:4256
|
#9 0x000056362385322f in open_tables (prelocking_strategy=0x14748a96cec8, flags=1090, counter=0x14748a96cec4, tables=0x14748a96ceb8, thd=0x14746f015088) at /test/10.5_dbg/sql/sql_base.h:264
|
#10 open_normal_and_derived_tables (thd=thd@entry=0x14746f015088, tables=<optimized out>, tables@entry=0x14746f1000e0, flags=1090, dt_phases=dt_phases@entry=35) at /test/10.5_dbg/sql/sql_base.cc:5225
|
#11 0x00005636238533ef in open_tables_only_view_structure (thd=thd@entry=0x14746f015088, table_list=table_list@entry=0x14746f1000e0, can_deadlock=can_deadlock@entry=false) at /test/10.5_dbg/sql/sql_base.cc:5276
|
#12 0x0000563623967a6d in fill_schema_table_by_open (thd=thd@entry=0x14746f015088, mem_root=mem_root@entry=0x14748a96ede0, is_show_fields_or_keys=is_show_fields_or_keys@entry=false, table=table@entry=0x14746f07d0a0, schema_table=schema_table@entry=0x56362506bf20 <schema_tables+2368>, orig_db_name=orig_db_name@entry=0x14746f0b3948, orig_table_name=0x14746f0b3978, open_tables_state_backup=0x14748a96ee20, can_deadlock=false) at /test/10.5_dbg/sql/sql_show.cc:4606
|
#13 0x000056362397dd77 in get_all_tables (thd=0x14746f015088, tables=0x14746f0747a8, cond=<optimized out>) at /test/10.5_dbg/sql/sql_show.cc:5245
|
#14 0x000056362397ed3d in get_schema_tables_result (join=join@entry=0x14746f0766c0, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /test/10.5_dbg/sql/sql_show.cc:8696
|
#15 0x00005636239520e9 in JOIN::exec_inner (this=this@entry=0x14746f0766c0) at /test/10.5_dbg/sql/sql_select.cc:4412
|
#16 0x0000563623952a91 in JOIN::exec (this=this@entry=0x14746f0766c0) at /test/10.5_dbg/sql/sql_select.cc:4236
|
#17 0x0000563623950d8d in mysql_select (thd=thd@entry=0x14746f015088, tables=<optimized out>, fields=@0x14746f0742d8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14746f074738, last = 0x14746f078e58, elements = 22}, <No data fields>}, conds=0x14746f075078, og_num=0, order=<optimized out>, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x14746f076698, unit=0x14746f019220, select_lex=0x14746f074188) at /test/10.5_dbg/sql/sql_select.cc:4663
|
#18 0x00005636239510bc in handle_select (thd=thd@entry=0x14746f015088, lex=lex@entry=0x14746f019158, result=result@entry=0x14746f076698, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.5_dbg/sql/sql_select.cc:417
|
#19 0x00005636238d8348 in execute_sqlcom_select (thd=thd@entry=0x14746f015088, all_tables=0x14746f0747a8) at /test/10.5_dbg/sql/sql_parse.cc:6210
|
#20 0x00005636238d141c in mysql_execute_command (thd=thd@entry=0x14746f015088) at /test/10.5_dbg/sql/sql_parse.cc:3932
|
#21 0x00005636238de324 in mysql_parse (thd=thd@entry=0x14746f015088, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14748a971350, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:7994
|
#22 0x00005636238cad54 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14746f015088, packet=packet@entry=0x14746f067089 "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_name='tr'", packet_length=packet_length@entry=65, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:1867
|
#23 0x00005636238c953e in do_command (thd=0x14746f015088) at /test/10.5_dbg/sql/sql_parse.cc:1348
|
#24 0x0000563623a28893 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x147473cd5ec8, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1410
|
#25 0x0000563623a28fb7 in handle_one_connection (arg=arg@entry=0x147473cd5ec8) at /test/10.5_dbg/sql/sql_connect.cc:1312
|
#26 0x0000563623e935c2 in pfs_spawn_thread (arg=0x147491c46a08) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201
|
#27 0x0000147493e2e6db in start_thread (arg=0x14748a972700) at pthread_create.c:463
|
#28 0x000014749322ca3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
Sporadically. Number of executions about 150-600 to hit the issue. For repeated execution at the CLI, I used this testcase specifically:
DROP DATABASE test;
|
CREATE DATABASE test;
|
USE test;
|
CREATE TABLE t (c1 MEDIUMINT NULL, c2 BINARY (25) NOT NULL, c3 BIGINT (4) NULL, c4 BINARY (15) NOT NULL PRIMARY KEY, c5 MEDIUMINT NOT NULL UNIQUE KEY,c6 FIXED (10,8) NOT NULL DEFAULT 1);
|
CREATE TRIGGER trb BEFORE UPDATE ON t FOR EACH ROW SET @a:=3;
|
CREATE TRIGGER tr BEFORE INSERT ON t FOR EACH ROW SET @a:=1;
|
SET SESSION tmp_disk_table_size=false;
|
CREATE TABLE q (b TEXT CHARSET latin1, fullTEXT (b)) ENGINE=TokuDB;
|
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_name='tr';
|
Also, the same testcase (the first one in this comment, not the one just above), can produce another interesting crash on optimized, which is either very hard to hit or may require the C connector (in my case via pquery). Adding stack for completeness and this is now being filtered from the runs also:
|
10.5.6 2bac9782aa81ad386beaf00eb126ccf2d15031a1
|
Core was generated by `/test/MD150920-mariadb-10.5.6-linux-x86_64-opt/bin/mysqld --no-defaults --max_a'.
|
Program terminated with signal SIGSEGV, Segmentation fault.
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=11)
|
at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
[Current thread is 1 (Thread 0x14caf8129700 (LWP 1525389))]
|
(gdb) bt
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
#1 0x000055b8064fbae7 in my_write_core (sig=sig@entry=11) at /data/10.5_opt/mysys/stacktrace.c:424
|
#2 0x000055b805ecafda in handle_fatal_signal (sig=11) at /data/10.5_opt/sql/signal_handler.cc:330
|
#3 <signal handler called>
|
#4 0x000055b80655df1b in strxmov (dst=0x14caf81241b3 "\370\312\024", src=0x6f725f6f <error: Cannot access memory at address 0x6f725f6f>) at /data/10.5_opt/strings/strxmov.c:53
|
#5 0x000055b805d6f1b7 in Trigger::get_trigger_info (this=this@entry=0x14cab84ee5c0, trigger_stmt=trigger_stmt@entry=0x14caf8124160, trigger_body=trigger_body@entry=0x14caf8124170, definer=definer@entry=0x14caf8124150) at /data/10.5_opt/sql/sql_trigger.cc:1742
|
#6 0x000055b805d3f11b in store_trigger (thd=thd@entry=0x14cab8000c18, trigger=trigger@entry=0x14cab84ee5c0, table=table@entry=0x14cab820ae00, db_name=db_name@entry=0x14cab84e3380, table_name=table_name@entry=0x14cab84e5700) at /data/10.5_opt/sql/sql_show.cc:7015
|
#7 0x000055b805d3f5ad in get_schema_triggers_record (thd=0x14cab8000c18, tables=<optimized out>, table=0x14cab820ae00, res=<optimized out>, db_name=0x14cab84e3380, table_name=0x14cab84e5700) at /data/10.5_opt/sql/sql_show.cc:7097
|
#8 0x000055b805d35672 in fill_schema_table_by_open (thd=thd@entry=0x14cab8000c18, mem_root=mem_root@entry=0x14caf8126220, is_show_fields_or_keys=is_show_fields_or_keys@entry=false, table=table@entry=0x14cab820ae00, schema_table=schema_table@entry=0x55b806fc0be0 <schema_tables+2368>, orig_db_name=orig_db_name@entry=0x14cab84e3380, orig_table_name=0x14cab84e5700, open_tables_state_backup=0x14caf8126260, can_deadlock=true) at /data/10.5_opt/sql/sql_show.cc:4641
|
#9 0x000055b805d47f41 in get_all_tables (thd=0x14cab8000c18, tables=0x14cab8010b88, cond=<optimized out>) at /data/10.5_opt/sql/sql_show.cc:5245
|
#10 0x000055b805d492d5 in get_schema_tables_result (join=join@entry=0x14cab8012ac0, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /data/10.5_opt/sql/sql_show.cc:8696
|
#11 0x000055b805d2fced in JOIN::exec_inner (this=this@entry=0x14cab8012ac0) at /data/10.5_opt/sql/sql_select.cc:4412
|
#12 0x000055b805d30357 in JOIN::exec (this=this@entry=0x14cab8012ac0) at /data/10.5_opt/sql/sql_select.cc:4236
|
#13 0x000055b805d2e682 in mysql_select (thd=thd@entry=0x14cab8000c18, tables=0x14cab8010b88, fields=@0x14cab8010688: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14cab8010ae8, last = 0x14cab80153b8, elements = 22}, <No data fields>}, conds=0x14cab8011478, og_num=<optimized out>, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=681404416, result=0x14cab8012a98, unit=0x14cab8004bf0, select_lex=0x14cab8010538) at /data/10.5_opt/sql/sql_select.cc:4663
|
#14 0x000055b805d2f041 in handle_select (thd=thd@entry=0x14cab8000c18, lex=lex@entry=0x14cab8004b28, result=result@entry=0x14cab8012a98, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/10.5_opt/sql/sql_select.cc:417
|
#15 0x000055b805cd48f1 in execute_sqlcom_select (thd=thd@entry=0x14cab8000c18, all_tables=0x14cab8010b88) at /data/10.5_opt/sql/sql_parse.cc:6210
|
#16 0x000055b805cd0fd1 in mysql_execute_command (thd=thd@entry=0x14cab8000c18) at /data/10.5_opt/sql/sql_parse.cc:3932
|
#17 0x000055b805cd7a2c in mysql_parse (thd=0x14cab8000c18, rawbuf=<optimized out>, length=69, parser_state=0x14caf8128470, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/10.5_opt/sql/sql_parse.cc:7994
|
#18 0x000055b805ccccc5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14cab8000c18, packet=packet@entry=0x14cab83dc049 "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1';", packet_length=packet_length@entry=70, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/10.5_opt/sql/sql_parse.cc:1867
|
#19 0x000055b805ccafe4 in do_command (thd=0x14cab8000c18) at /data/10.5_opt/sql/sql_parse.cc:1348
|
#20 0x000055b805dc1ba1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55b809de4fc8, put_in_cache=put_in_cache@entry=true) at /data/10.5_opt/sql/sql_connect.cc:1410
|
#21 0x000055b805dc1f14 in handle_one_connection (arg=arg@entry=0x55b809de4fc8) at /data/10.5_opt/sql/sql_connect.cc:1312
|
#22 0x000055b806135a4a in pfs_spawn_thread (arg=0x55b8092cbfd8) at /data/10.5_opt/storage/perfschema/pfs.cc:2201
|
#23 0x000014cb0e4fc6db in start_thread (arg=0x14caf8129700) at pthread_create.c:463
|
#24 0x000014cb0d8faa3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
|
|
Found a testcase which seems to reliably reproduce the strxmov issue at the CLI. About 200-2000 repeats.
DROP DATABASE test;
|
CREATE DATABASE test;
|
USE test;
|
CREATE TABLE t (a TEXT, FULLTEXT KEY(a)) ENGINE = Aria;
|
CREATE TRIGGER t_ai AFTER INSERT ON t FOR EACH ROW call bug14233_3 ();
|
ALTER TABLE mysql.help_KEYword ENGINE=MEMORY;
|
CREATE TABLE t (a decimal (10,2)) ( (SELECT * FROM t WHERE a <=3));
|
CREATE TEMPORARY TABLE t (c1 INT) ENGINE=MyISAM;
|
CREATE TRIGGER t_TRIGGER BEFORE INSERT ON t FOR EACH ROW DELETE FROM s WHERE id=1000000;
|
RENAME TABLE t2 TO t,t2 TO t3,t2 TO t3;
|
SET GLOBAL TABLE_open_cache = -1;
|
SET SESSION tmp_disk_TABLE_size = True;
|
SELECT TRIGGER_name, CREATEd, action_order FROM information_schema.TRIGGERs WHERE TRIGGER_schema='test';
|
Leads to:
|
10.5.6 2bac9782aa81ad386beaf00eb126ccf2d15031a1 (Optimized)
|
Core was generated by `/test/MD150920-mariadb-10.5.6-linux-x86_64-opt/bin/mysqld --no-defaults --core-'.
|
Program terminated with signal SIGSEGV, Segmentation fault.
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=11)
|
at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
[Current thread is 1 (Thread 0x14f7d7b9c700 (LWP 2384196))]
|
(gdb) bt
|
#0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
|
#1 0x000056213fab0ae7 in my_write_core (sig=sig@entry=11) at /data/10.5_opt/mysys/stacktrace.c:424
|
#2 0x000056213f47ffda in handle_fatal_signal (sig=11) at /data/10.5_opt/sql/signal_handler.cc:330
|
#3 <signal handler called>
|
#4 0x000056213fb12f1b in strxmov (dst=0x14f7d7b97171 "q\271\327\367\024", src=0x0) at /data/10.5_opt/strings/strxmov.c:53
|
#5 0x000056213f3241b7 in Trigger::get_trigger_info (this=this@entry=0x14f7d4bec830, trigger_stmt=trigger_stmt@entry=0x14f7d7b97120, trigger_body=trigger_body@entry=0x14f7d7b97130, definer=definer@entry=0x14f7d7b97110) at /data/10.5_opt/sql/sql_trigger.cc:1742
|
#6 0x000056213f2f411b in store_trigger (thd=thd@entry=0x14f7b4012018, trigger=trigger@entry=0x14f7d4bec830, table=table@entry=0x14f7b7430030, db_name=db_name@entry=0x14f7b404c520, table_name=table_name@entry=0x14f7b4077030) at /data/10.5_opt/sql/sql_show.cc:7015
|
#7 0x000056213f2f45ad in get_schema_triggers_record (thd=0x14f7b4012018, tables=<optimized out>, table=0x14f7b7430030, res=<optimized out>, db_name=0x14f7b404c520, table_name=0x14f7b4077030) at /data/10.5_opt/sql/sql_show.cc:7097
|
#8 0x000056213f2ea672 in fill_schema_table_by_open (thd=thd@entry=0x14f7b4012018, mem_root=mem_root@entry=0x14f7d7b991e0, is_show_fields_or_keys=is_show_fields_or_keys@entry=false, table=table@entry=0x14f7b7430030, schema_table=schema_table@entry=0x562140575be0 <schema_tables+2368>, orig_db_name=orig_db_name@entry=0x14f7b404c520, orig_table_name=0x14f7b4077030, open_tables_state_backup=0x14f7d7b99220, can_deadlock=false) at /data/10.5_opt/sql/sql_show.cc:4641
|
#9 0x000056213f2fcf41 in get_all_tables (thd=0x14f7b4012018, tables=0x14f7b4047a48, cond=<optimized out>) at /data/10.5_opt/sql/sql_show.cc:5245
|
#10 0x000056213f2fe2d5 in get_schema_tables_result (join=join@entry=0x14f7b4049960, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /data/10.5_opt/sql/sql_show.cc:8696
|
#11 0x000056213f2e4ced in JOIN::exec_inner (this=this@entry=0x14f7b4049960) at /data/10.5_opt/sql/sql_select.cc:4412
|
#12 0x000056213f2e5357 in JOIN::exec (this=this@entry=0x14f7b4049960) at /data/10.5_opt/sql/sql_select.cc:4236
|
#13 0x000056213f2e3682 in mysql_select (thd=thd@entry=0x14f7b4012018, tables=0x14f7b4047a48, fields=@0x14f7b40472b0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14f7b4047720, last = 0x14f7b40479d8, elements = 3}, <No data fields>}, conds=0x14f7b4048318, og_num=<optimized out>, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x14f7b4049938, unit=0x14f7b4015ff0, select_lex=0x14f7b4047160) at /data/10.5_opt/sql/sql_select.cc:4663
|
#14 0x000056213f2e4041 in handle_select (thd=thd@entry=0x14f7b4012018, lex=lex@entry=0x14f7b4015f28, result=result@entry=0x14f7b4049938, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/10.5_opt/sql/sql_select.cc:417
|
#15 0x000056213f2898f1 in execute_sqlcom_select (thd=thd@entry=0x14f7b4012018, all_tables=0x14f7b4047a48) at /data/10.5_opt/sql/sql_parse.cc:6210
|
#16 0x000056213f285fd1 in mysql_execute_command (thd=thd@entry=0x14f7b4012018) at /data/10.5_opt/sql/sql_parse.cc:3932
|
#17 0x000056213f28ca2c in mysql_parse (thd=0x14f7b4012018, rawbuf=<optimized out>, length=103, parser_state=0x14f7d7b9b430, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/10.5_opt/sql/sql_parse.cc:7994
|
#18 0x000056213f281cc5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14f7b4012018, packet=packet@entry=0x14f7b403a019 "SELECT TRIGGER_name, CREATEd, action_order FROM information_schema.TRIGGERs WHERE TRIGGER_schema='test'", packet_length=packet_length@entry=103, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/10.5_opt/sql/sql_parse.cc:1867
|
#19 0x000056213f27ffe4 in do_command (thd=0x14f7b4012018) at /data/10.5_opt/sql/sql_parse.cc:1348
|
#20 0x000056213f376ba1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x14f7d48338f8, put_in_cache=put_in_cache@entry=true) at /data/10.5_opt/sql/sql_connect.cc:1410
|
#21 0x000056213f376f14 in handle_one_connection (arg=arg@entry=0x14f7d48338f8) at /data/10.5_opt/sql/sql_connect.cc:1312
|
#22 0x000056213f6eaa4a in pfs_spawn_thread (arg=0x14f7d484f018) at /data/10.5_opt/storage/perfschema/pfs.cc:2201
|
#23 0x000014f7d6b156db in start_thread (arg=0x14f7d7b9c700) at pthread_create.c:463
|
#24 0x000014f7d5f13a3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
|
|
For that last testcase;
|
10.5.6 2bac9782aa81ad386beaf00eb126ccf2d15031a1 (Optimized)
|
2020-09-26 17:26:42 2824 [ERROR] mysqld: The table '(temporary)' is full
|
ASAN:DEADLYSIGNAL
|
=================================================================
|
==4068816==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x560b25a3b6e1 bp 0x150627776990 sp 0x150627776810 T14)
|
==4068816==The signal is caused by a READ memory access.
|
==4068816==Hint: address points to the zero page.
|
#0 0x560b25a3b6e0 in strxmov /test/10.5_opt_asan/strings/strxmov.c:53
|
#1 0x560b227db0c3 in Trigger::get_trigger_info(st_mysql_const_lex_string*, st_mysql_const_lex_string*, st_mysql_lex_string*) /test/10.5_opt_asan/sql/sql_trigger.cc:1742
|
#2 0x560b22685af4 in store_trigger /test/10.5_opt_asan/sql/sql_show.cc:7015
|
#3 0x560b226893f1 in get_schema_triggers_record /test/10.5_opt_asan/sql/sql_show.cc:7097
|
#4 0x560b2264cff6 in fill_schema_table_by_open /test/10.5_opt_asan/sql/sql_show.cc:4641
|
#5 0x560b226cbe73 in get_all_tables(THD*, TABLE_LIST*, Item*) /test/10.5_opt_asan/sql/sql_show.cc:5245
|
#6 0x560b226d4e95 in get_schema_tables_result(JOIN*, enum_schema_table_state) /test/10.5_opt_asan/sql/sql_show.cc:8696
|
#7 0x560b22608bac in JOIN::exec_inner() /test/10.5_opt_asan/sql/sql_select.cc:4412
|
#8 0x560b2260cbc1 in JOIN::exec() /test/10.5_opt_asan/sql/sql_select.cc:4236
|
#9 0x560b226009d8 in 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*) /test/10.5_opt_asan/sql/sql_select.cc:4663
|
#10 0x560b22604b7b in handle_select(THD*, LEX*, select_result*, unsigned long) /test/10.5_opt_asan/sql/sql_select.cc:417
|
#11 0x560b22391b7e in execute_sqlcom_select /test/10.5_opt_asan/sql/sql_parse.cc:6210
|
#12 0x560b2236d808 in mysql_execute_command(THD*) /test/10.5_opt_asan/sql/sql_parse.cc:3932
|
#13 0x560b223a8cf5 in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /test/10.5_opt_asan/sql/sql_parse.cc:7994
|
#14 0x560b22357f95 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /test/10.5_opt_asan/sql/sql_parse.cc:1867
|
#15 0x560b2234f538 in do_command(THD*) /test/10.5_opt_asan/sql/sql_parse.cc:1348
|
#16 0x560b22a08dfe in do_handle_one_connection(CONNECT*, bool) /test/10.5_opt_asan/sql/sql_connect.cc:1410
|
#17 0x560b22a0bfa5 in handle_one_connection /test/10.5_opt_asan/sql/sql_connect.cc:1312
|
#18 0x560b243cf650 in pfs_spawn_thread /test/10.5_opt_asan/storage/perfschema/pfs.cc:2201
|
#19 0x15064957d6da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
|
#20 0x150646f68a3e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x121a3e)
|
|
AddressSanitizer can not provide additional info.
|
SUMMARY: AddressSanitizer: SEGV /test/10.5_opt_asan/strings/strxmov.c:53 in strxmov
|
Thread T14 created by T0 here:
|
#0 0x560b21d0943f in __interceptor_pthread_create (/test/ASAN_MD150920-mariadb-10.5.6-linux-x86_64-opt/bin/mariadbd+0x570643f)
|
#1 0x560b243e1f84 in my_thread_create /test/10.5_opt_asan/storage/perfschema/my_thread.h:38
|
#2 0x560b243e1f84 in pfs_spawn_thread_v1 /test/10.5_opt_asan/storage/perfschema/pfs.cc:2252
|
#3 0x560b21e01b16 in inline_mysql_thread_create /test/10.5_opt_asan/include/mysql/psi/mysql_thread.h:1321
|
#4 0x560b21e01b16 in create_thread_to_handle_connection(CONNECT*) /test/10.5_opt_asan/sql/mysqld.cc:6025
|
#5 0x560b21e13d9f in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /test/10.5_opt_asan/sql/mysqld.cc:6149
|
#6 0x560b21e14d24 in handle_connections_sockets() /test/10.5_opt_asan/sql/mysqld.cc:6276
|
#7 0x560b21e17356 in mysqld_main(int, char**) /test/10.5_opt_asan/sql/mysqld.cc:5671
|
#8 0x150646e68b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
|
|
==4068816==ABORTING
|
|
|
Different stack with:
# mysqld options required for replay: --tmp-disk-table-size=254
|
CREATE DATABASE mysqldump_test_db;
|
USE mysqldump_test_db;
|
CREATE TABLE t0 (f0 CHAR(0));
|
CREATE TRIGGER tr0 AFTER INSERT ON t0 FOR EACH ROW SET @test_var=0;
|
SELECT * FROM information_schema.TRIGGERS;
|
Leads to:
|
10.7.0 52505bf20de0ce77a5c0b0a74af021051987bb0d (Debug)
|
mysqld: /test/10.7_dbg/sql/sql_class.cc:1556: void THD::cleanup(): Assertion `open_tables == __null' failed.
|
|
10.7.0 52505bf20de0ce77a5c0b0a74af021051987bb0d (Debug)
|
Core was generated by `/test/MD160821-mariadb-10.7.0-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
|
Program terminated with signal SIGABRT, Aborted.
|
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
|
[Current thread is 1 (Thread 0x145ca05fb700 (LWP 827533))]
|
(gdb) bt
|
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
|
#1 0x0000145cb649f859 in __GI_abort () at abort.c:79
|
#2 0x0000145cb649f729 in __assert_fail_base (fmt=0x145cb6635588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55ca1b65a808 "!parse_error || lex.sphead == 0", file=0x55ca1b65a048 "/test/10.7_dbg/sql/sql_trigger.cc", line=1627, function=<optimized out>) at assert.c:92
|
#3 0x0000145cb64b0f36 in __GI___assert_fail (assertion=assertion@entry=0x55ca1b65a808 "!parse_error || lex.sphead == 0", file=file@entry=0x55ca1b65a048 "/test/10.7_dbg/sql/sql_trigger.cc", line=line@entry=1627, function=function@entry=0x55ca1b65a798 "static bool Table_triggers_list::check_n_load(THD*, const LEX_CSTRING*, const LEX_CSTRING*, TABLE*, bool)") at assert.c:101
|
#4 0x000055ca1aab1c10 in Table_triggers_list::check_n_load (thd=thd@entry=0x145c64000db8, db=db@entry=0x145c6402cbf0, table_name=table_name@entry=0x145c64083ce0, table=table@entry=0x145ca05f7fe0, names_only=names_only@entry=true) at /test/10.7_dbg/sql/sql_trigger.cc:1627
|
#5 0x000055ca1aa78df3 in fill_schema_table_from_frm (can_deadlock=false, open_tables_state_backup=0x145ca05f7f80, table_name=0x145c64083ce0, db_name=0x145c6402cbf0, schema_table=0x55ca1becbf00 <schema_tables+2496>, table=0x145c64025c30, thd=0x145c64000db8) at /test/10.7_dbg/sql/sql_show.cc:5003
|
#6 get_all_tables (thd=0x145c64000db8, tables=0x145c64014340, cond=<optimized out>) at /test/10.7_dbg/sql/sql_show.cc:5301
|
#7 0x000055ca1aa7a9eb in get_schema_tables_result (join=join@entry=0x145c64015e08, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /test/10.7_dbg/sql/sql_show.cc:8837
|
#8 0x000055ca1aa4ca77 in JOIN::exec_inner (this=this@entry=0x145c64015e08) at /test/10.7_dbg/sql/sql_string.h:682
|
#9 0x000055ca1aa4d718 in JOIN::exec (this=this@entry=0x145c64015e08) at /test/10.7_dbg/sql/sql_select.cc:4513
|
#10 0x000055ca1aa4b6f6 in mysql_select (thd=thd@entry=0x145c64000db8, tables=0x145c64014340, fields=@0x145c64013fe0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x145c640142d0, last = 0x145c6402a8d8, elements = 22}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x145c64015de0, unit=0x145c64005120, select_lex=0x145c64013d40) at /test/10.7_dbg/sql/sql_select.cc:4991
|
#11 0x000055ca1aa4b9ab in handle_select (thd=thd@entry=0x145c64000db8, lex=lex@entry=0x145c64005058, result=result@entry=0x145c64015de0, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.7_dbg/sql/sql_select.cc:545
|
#12 0x000055ca1a9ad72e in execute_sqlcom_select (thd=thd@entry=0x145c64000db8, all_tables=0x145c64014340) at /test/10.7_dbg/sql/sql_parse.cc:6256
|
#13 0x000055ca1a9ba5d1 in mysql_execute_command (thd=thd@entry=0x145c64000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.7_dbg/sql/sql_parse.cc:3946
|
#14 0x000055ca1a9a6ac3 in mysql_parse (thd=thd@entry=0x145c64000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x145ca05fa400) at /test/10.7_dbg/sql/sql_parse.cc:8030
|
#15 0x000055ca1a9b56c8 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x145c64000db8, packet=packet@entry=0x145c6400b739 "SELECT * FROM information_schema.TRIGGERS", packet_length=packet_length@entry=41, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_class.h:1357
|
#16 0x000055ca1a9b8ae9 in do_command (thd=0x145c64000db8, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_parse.cc:1404
|
#17 0x000055ca1ab2edd6 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55ca1e776308, put_in_cache=put_in_cache@entry=true) at /test/10.7_dbg/sql/sql_connect.cc:1418
|
#18 0x000055ca1ab2f3db in handle_one_connection (arg=arg@entry=0x55ca1e776308) at /test/10.7_dbg/sql/sql_connect.cc:1312
|
#19 0x000055ca1af97ce4 in pfs_spawn_thread (arg=0x55ca1e69f038) at /test/10.7_dbg/storage/perfschema/pfs.cc:2201
|
#20 0x0000145cb69ae609 in start_thread (arg=<optimized out>) at pthread_create.c:477
|
#21 0x0000145cb659c293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
Bug confirmed present in:
MariaDB: 10.6.5 (dbg), 10.7.0 (dbg)
Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.2.41 (dbg), 10.2.41 (opt), 10.3.32 (dbg), 10.3.32 (opt), 10.4.22 (dbg), 10.4.22 (opt), 10.5.13 (dbg), 10.5.13 (opt), 10.6.5 (opt), 10.7.0 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.35 (dbg), 5.7.35 (opt), 8.0.26 (dbg), 8.0.26 (opt)
|
|
The problem that try to write to the temporary table of SHOW TRIGGER lead to an error which is supressed by warning handler, but is_fatal_error flag will be left, then sql_parse after parsing see the flag and return an error and lex->sphead also set (parsing was successful) which is unexpected for the code of Table_triggers_list::check_n_load
|
|
commit baaaa971662e1f908dba528f14ebe2624dd09378 (HEAD -> bb-10.2-MDEV-22883, origin/bb-10.2-MDEV-22883)
|
Author: Oleksandr Byelkin <sanja@mariadb.com>
|
Date: Sun Sep 19 19:23:49 2021 +0200
|
|
MDEV-22883: Assertion `!parse_error || lex.sphead == 0' failed in Table_triggers_list::check_n_load | SIGSEGV in strxmov
|
|
Abort execution of SHOW in case of fatal error.
|
|