diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 2b277e5aace..7d8e4aa51a2 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -1143,13 +1143,14 @@ static void recv_apply_log_rec(recv_addr_t *recv_addr) { } bool found; + bool exsit_in_missing_ids = false; const page_id_t page_id(recv_addr->space, recv_addr->page_no); const page_size_t page_size = fil_space_get_page_size(recv_addr->space, &found); - if (!found || recv_sys->missing_ids.find(recv_addr->space) != - recv_sys->missing_ids.end()) { + if (!found || (exsit_in_missing_ids = recv_sys->missing_ids.find(recv_addr->space) != + recv_sys->missing_ids.end())) { /* Tablespace was discarded or dropped after changes were made to it. Or, we have ignored redo log for this tablespace earlier and somehow it has been found now. We can't apply @@ -1163,7 +1164,7 @@ static void recv_apply_log_rec(recv_addr_t *recv_addr) { /* If the tablespace has been explicitly deleted, we can safely ignore it. */ - if (recv_sys->deleted.find(recv_addr->space) == recv_sys->deleted.end()) { + if (!exsit_in_missing_ids && recv_sys->deleted.find(recv_addr->space) == recv_sys->deleted.end()) { recv_sys->missing_ids.insert(recv_addr->space); }