[MDEV-31837] Server crashes in process_i_s_table_temporary_tables/get_all_tables Created: 2023-08-03  Updated: 2023-08-12  Resolved: 2023-08-10

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Temporary, Information Schema
Affects Version/s: N/A
Fix Version/s: 11.2.1

Type: Bug Priority: Critical
Reporter: Alice Sherepa Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-12459 The information_schema tables for get... Closed

 Description   

CREATE  SEQUENCE seq1;
 
CREATE  TEMPORARY TABLE `tmp` LIKE seq1;
INSERT  `tmp` SELECT * FROM seq1;
ALTER  TABLE `tmp` RENAME TO seq1;
 
--error 4086
ALTER TABLE `seq1` CHANGE `cache_size` cache_size int ;
--error 1050
RENAME  TABLE seq1 TO seq1;
show  full tables;

preview-11.2-preview 1a7f3a9bd2bf938

230803 15:31:05 [ERROR] mysqld got signal 11 ;
 
Server version: 11.2.0-MariaDB-debug-log source revision: 1a7f3a9bd2bf938d0810e9b283d034a13b263c8f
 
sql/signal_handler.cc:241(handle_fatal_signal)[0x55ebabaf160a]
sigaction.c:0(__restore_rt)[0x7f53402fc420]
sql/sql_show.cc:5315(get_all_tables(THD*, TABLE_LIST*, Item*))[0x55ebab3c71b9]
sql/sql_show.cc:9129(get_schema_tables_result(JOIN*, enum_schema_table_state))[0x55ebab3fdf6b]
sql/sql_select.cc:4889(JOIN::exec_inner())[0x55ebab2b696d]
sql/sql_select.cc:4710(JOIN::exec())[0x55ebab2b4604]
sql/sql_select.cc:5239(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*))[0x55ebab2b8d55]
sql/sql_select.cc:627(handle_select(THD*, LEX*, select_result*, unsigned long long))[0x55ebab2884c9]
sql/sql_parse.cc:6031(execute_sqlcom_select(THD*, TABLE_LIST*))[0x55ebab1a99ea]
sql/sql_parse.cc:3945(mysql_execute_command(THD*, bool))[0x55ebab19a5fe]
sql/sql_parse.cc:7770(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x55ebab1b482f]
sql/sql_parse.cc:1895(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x55ebab18cd0e]
sql/sql_parse.cc:1406(do_command(THD*, bool))[0x55ebab189a58]
sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x55ebab664d37]
sql/sql_connect.cc:1320(handle_one_connection)[0x55ebab664694]
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x55ebac2e1ab0]
nptl/pthread_create.c:478(start_thread)[0x7f53402f0609]
 
Query (0x6290001092a8): show  full tables

Server version: 11.2.0-MariaDB-debug-log source revision: 1a7f3a9bd2bf938d0810e9b283d034a13b263c8f
 
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12730)[0x7f7d6bce9730]
sql/sql_show.cc:5914(process_i_s_table_temporary_tables(THD*, TABLE*, TABLE*))[0x562a93251986]
sql/sql_show.cc:5330(get_all_tables(THD*, TABLE_LIST*, Item*))[0x562a93249f69]
sql/sql_show.cc:9129(get_schema_tables_result(JOIN*, enum_schema_table_state))[0x562a9327f6a9]
sql/sql_select.cc:4889(JOIN::exec_inner())[0x562a9313cee8]
sql/sql_select.cc:4710(JOIN::exec())[0x562a9313abba]
sql/sql_select.cc:5239(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*))[0x562a9313f187]
sql/sql_select.cc:627(handle_select(THD*, LEX*, select_result*, unsigned long long))[0x562a9310f02d]
sql/sql_parse.cc:6031(execute_sqlcom_select(THD*, TABLE_LIST*))[0x562a93036194]
sql/sql_parse.cc:3945(mysql_execute_command(THD*, bool))[0x562a93026d45]
sql/sql_parse.cc:7770(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x562a93040b0e]
sql/sql_parse.cc:1895(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x562a930196b9]
sql/sql_parse.cc:1406(do_command(THD*, bool))[0x562a930163ac]
sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x562a934da1d0]
sql/sql_connect.cc:1320(handle_one_connection)[0x562a934d9b26]
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x562a941cd1ff]
nptl/pthread_create.c:487(start_thread)[0x7f7d6bcdefa3]
x86_64/clone.S:97(clone)[0x7f7d6b8e806f]



 Comments   
Comment by Sergei Golubchik [ 2023-08-07 ]

Note that the bug can be repeated without sequences too:

CREATE  table seq1 (a bigint, b int);
CREATE  TEMPORARY TABLE tmp LIKE seq1;
INSERT  tmp SELECT * FROM seq1;
ALTER  TABLE tmp RENAME TO seq1;
--error 4086,1060
ALTER TABLE seq1 CHANGE a b int ;
--error 1050
RENAME  TABLE seq1 TO seq1;
show  full tables;

Comment by Anel Husakovic [ 2023-08-08 ]

Thanks, have updated PR 2720 with the new approach.

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