Commit 82fe83a3 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-26012 InnoDB purge and shutdown hangs after failed ALTER TABLE

ha_innobase::commit_inplace_alter_table(): Invoke
purge_sys.resume_FTS() on all error handling paths
if purge_sys.stop_FTS() had been called.

This fixes a regression that had been introduced in
commit 1bd681c8 (MDEV-25506).
parent 033e29b6
...@@ -10885,6 +10885,9 @@ ha_innobase::commit_inplace_alter_table( ...@@ -10885,6 +10885,9 @@ ha_innobase::commit_inplace_alter_table(
lock_fail: lock_fail:
my_error_innodb( my_error_innodb(
error, table_share->table_name.str, 0); error, table_share->table_name.str, 0);
if (fts_exist) {
purge_sys.resume_FTS();
}
DBUG_RETURN(true); DBUG_RETURN(true);
} else if ((ctx->new_table->flags2 } else if ((ctx->new_table->flags2
& (DICT_TF2_FTS_HAS_DOC_ID | DICT_TF2_FTS)) & (DICT_TF2_FTS_HAS_DOC_ID | DICT_TF2_FTS))
...@@ -10916,6 +10919,9 @@ ha_innobase::commit_inplace_alter_table( ...@@ -10916,6 +10919,9 @@ ha_innobase::commit_inplace_alter_table(
DBUG_ASSERT(ctx->need_rebuild()); DBUG_ASSERT(ctx->need_rebuild());
if (alter_rebuild_apply_log(ctx, ha_alter_info, if (alter_rebuild_apply_log(ctx, ha_alter_info,
altered_table)) { altered_table)) {
if (fts_exist) {
purge_sys.resume_FTS();
}
DBUG_RETURN(true); DBUG_RETURN(true);
} }
} }
......
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