mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-30955 Explicit locks released too early in rollback path
Assertion `thd->mdl_context.is_lock_owner()` fires when a client is disconnected, while transaction and and a table is opened through `HANDLER` interface. Reason for the assertion is that when a connection closes, its ongoing transaction is eventually rolled back in `Wsrep_client_state::bf_rollback()`. This method also releases explicit which are expected to survive beyond the transaction lifetime. This patch also removes calls to `mysql_ull_cleanup()`. User level locks are not supported in combination with Galera, making these calls unnecessary.
This commit is contained in:
committed by
Julius Goryavsky
parent
bc3bfcf943
commit
feeeacc4d7
@ -1309,7 +1309,7 @@ bool do_command(THD *thd)
|
||||
in wsrep_before_command().
|
||||
*/
|
||||
WSREP_LOG_THD(thd, "enter found BF aborted");
|
||||
DBUG_ASSERT(!thd->mdl_context.has_locks());
|
||||
DBUG_ASSERT(!thd->mdl_context.has_transactional_locks());
|
||||
DBUG_ASSERT(!thd->get_stmt_da()->is_set());
|
||||
/* We let COM_QUIT and COM_STMT_CLOSE to execute even if wsrep aborted. */
|
||||
if (command == COM_STMT_EXECUTE)
|
||||
|
Reference in New Issue
Block a user