mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-5955 Server crashes in handler::ha_external_lock or assertion `m_lock_type == 2' fails in handler::ha_close on disconnect with a locked temporary table
first unlock locked tables, then close and remove temporary
This commit is contained in:
2
mysql-test/r/locked_temporary-5955.result
Normal file
2
mysql-test/r/locked_temporary-5955.result
Normal file
@ -0,0 +1,2 @@
|
||||
CREATE TEMPORARY TABLE tmp (i INT) ENGINE=InnoDB;
|
||||
LOCK TABLES tmp AS p WRITE;
|
10
mysql-test/t/locked_temporary-5955.test
Normal file
10
mysql-test/t/locked_temporary-5955.test
Normal file
@ -0,0 +1,10 @@
|
||||
#
|
||||
# MDEV-5955 Server crashes in handler::ha_external_lock or assertion `m_lock_type == 2' fails in handler::ha_close on disconnect with a locked temporary table
|
||||
#
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--connect (con1,localhost,root,,)
|
||||
CREATE TEMPORARY TABLE tmp (i INT) ENGINE=InnoDB;
|
||||
LOCK TABLES tmp AS p WRITE;
|
||||
--disconnect con1
|
||||
|
@ -1391,6 +1391,7 @@ void THD::cleanup(void)
|
||||
#endif
|
||||
|
||||
mysql_ha_cleanup(this);
|
||||
locked_tables_list.unlock_locked_tables(this);
|
||||
|
||||
close_temporary_tables(this);
|
||||
|
||||
@ -1398,8 +1399,6 @@ void THD::cleanup(void)
|
||||
trans_rollback(this);
|
||||
xid_cache_delete(&transaction.xid_state);
|
||||
|
||||
locked_tables_list.unlock_locked_tables(this);
|
||||
|
||||
DBUG_ASSERT(open_tables == NULL);
|
||||
/*
|
||||
If the thread was in the middle of an ongoing transaction (rolled
|
||||
|
Reference in New Issue
Block a user