summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--storage/innobase/row/row0log.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/storage/innobase/row/row0log.cc b/storage/innobase/row/row0log.cc
index e897e5306ac..b2d6b156c38 100644
--- a/storage/innobase/row/row0log.cc
+++ b/storage/innobase/row/row0log.cc
@@ -4326,6 +4326,9 @@ void row_log_update_handle(const dtuple_t *tuple,
mtr.commit();
clust_index->lock.s_lock(SRW_LOCK_CALL);
+ /* Recheck whether clustered index online log has been cleared */
+ if (clust_index->online_log == nullptr)
+ goto clust_exit;
if (is_update)
{
const dtuple_t *rebuilt_old_pk= row_log_table_get_pk(
@@ -4334,6 +4337,7 @@ void row_log_update_handle(const dtuple_t *tuple,
}
else
row_log_table_delete(prev_copy_rec, clust_index, prev_offsets, nullptr);
+clust_exit:
clust_index->lock.s_unlock();
return;
}