mirror of
https://github.com/MariaDB/server.git
synced 2026-04-26 18:25:30 +02:00
Bug #48985: show create table crashes if previous access to the table was killed
When checking for an error after removing the special view error handler the code was not taking into account that open_tables() may fail because of the current statement being killed. Added a check for thd->killed. Added a client program to test it.
This commit is contained in:
parent
3707a74e6e
commit
1457d7b367
3 changed files with 29 additions and 1 deletions
|
|
@ -1454,4 +1454,10 @@ GRANT PROCESS ON *.* TO test_u@localhost;
|
|||
SHOW ENGINE MYISAM MUTEX;
|
||||
SHOW ENGINE MYISAM STATUS;
|
||||
DROP USER test_u@localhost;
|
||||
#
|
||||
# Bug #48985: show create table crashes if previous access to the table
|
||||
# was killed
|
||||
#
|
||||
SHOW CREATE TABLE non_existent;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
End of 5.1 tests
|
||||
|
|
|
|||
|
|
@ -1207,6 +1207,28 @@ connection default;
|
|||
DROP USER test_u@localhost;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug #48985: show create table crashes if previous access to the table
|
||||
--echo # was killed
|
||||
--echo #
|
||||
|
||||
connect(con1,localhost,root,,);
|
||||
CONNECTION con1;
|
||||
LET $ID= `SELECT connection_id()`;
|
||||
|
||||
CONNECTION default;
|
||||
--disable_query_log
|
||||
eval KILL QUERY $ID;
|
||||
--enable_query_log
|
||||
|
||||
CONNECTION con1;
|
||||
--error ER_QUERY_INTERRUPTED
|
||||
SHOW CREATE TABLE non_existent;
|
||||
|
||||
CONNECTION default;
|
||||
DISCONNECT con1;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
# Wait till all disconnects are completed
|
||||
|
|
|
|||
|
|
@ -719,7 +719,7 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
|
|||
thd->push_internal_handler(&view_error_suppressor);
|
||||
bool error= open_normal_and_derived_tables(thd, table_list, 0);
|
||||
thd->pop_internal_handler();
|
||||
if (error && thd->main_da.is_error())
|
||||
if (error && (thd->killed || thd->main_da.is_error()))
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue