Commit 15214a4f authored by Monty's avatar Monty

MDEV-25708 THD::cleanup(): Assertion `!mdl_context.has_locks()' failed

The reason was that WSREP code in mysql_create_or_drop_trigge() did
jump to an exit label that did not do proper cleanup of state.
Fixed by ensuring that also WSREP code goes trough the cleanup process.
parent 2c90dc09
......@@ -457,7 +457,6 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create)
thd->variables.lock_wait_timeout))
goto end;
if (!create)
{
bool if_exists= thd->lex->if_exists();
......@@ -565,7 +564,7 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create)
#ifdef WITH_WSREP
if (WSREP(thd) &&
!wsrep_should_replicate_ddl(thd, table->s->db_type()->db_type))
goto wsrep_error_label;
goto end;
#endif
/* Later on we will need it to downgrade the lock */
......@@ -652,9 +651,11 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create)
thd->mdl_context.release_lock(mdl_request_for_trn.ticket);
DBUG_RETURN(result);
#ifdef WITH_WSREP
wsrep_error_label:
DBUG_RETURN(true);
DBUG_ASSERT(result == 1);
goto end;
#endif
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment