Skip to content
Permalink
Browse files
MDEV-21329 InnoDB: Failing assertion: lock->lock_word.load(std::memor…
…y_order_relaxed) == X_LOCK_DECR upon server shutdown

Problem is that dropping of fts table and sync of fts table
happens concurrently during fts optimize thread shutdown.
fts_optimize_remove_table() is executed by a user thread that
performs DDL, and that the fts_optimize_wq may be removed if
fts_optimize_shutdown() has started executing.

fts_optimize_remove_table() doesn't remove the table from the queue
and it leads to above scenario. While removing the table from
fts_optimize_wq, if the table can't be removed then wait till
fts_optimize_thread shuts down.

Reviewed-by: Marko Mäkelä
  • Loading branch information
Thirunarayanan committed Oct 8, 2020
1 parent b18921c commit 8984d77
Showing 1 changed file with 5 additions and 0 deletions.
@@ -2573,6 +2573,11 @@ fts_optimize_remove_table(
if (fts_opt_start_shutdown) {
ib::info() << "Try to remove table " << table->name
<< " after FTS optimize thread exiting.";
/* If the table can't be removed then wait till
fts optimize thread shuts down */
while (fts_optimize_wq) {
os_thread_sleep(10000);
}
return;
}

0 comments on commit 8984d77

Please sign in to comment.