From 82fe83a34c26b88338f7dae638566f6f3a6e84ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 24 Jun 2021 16:07:27 +0300 Subject: 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 1bd681c8b3c5213ce1f7976940a7dc38b48a0d39 (MDEV-25506). --- storage/innobase/handler/handler0alter.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index b074c86b9d2..62f9d103aa1 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -10885,6 +10885,9 @@ ha_innobase::commit_inplace_alter_table( lock_fail: my_error_innodb( error, table_share->table_name.str, 0); + if (fts_exist) { + purge_sys.resume_FTS(); + } DBUG_RETURN(true); } else if ((ctx->new_table->flags2 & (DICT_TF2_FTS_HAS_DOC_ID | DICT_TF2_FTS)) @@ -10916,6 +10919,9 @@ lock_fail: DBUG_ASSERT(ctx->need_rebuild()); if (alter_rebuild_apply_log(ctx, ha_alter_info, altered_table)) { + if (fts_exist) { + purge_sys.resume_FTS(); + } DBUG_RETURN(true); } } -- cgit v1.2.1