Skip to content

Commit f653fdc

Browse files
committed
Fixing iterator cleanup for Tailing iterator
Immutable tailing iterator doesn't set CleanupState::mem, so we don't have to unref it.
1 parent b13bdfa commit f653fdc

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

db/db_impl.cc

+5-3
Original file line numberDiff line numberDiff line change
@@ -2668,9 +2668,11 @@ static void CleanupIteratorState(void* arg1, void* arg2) {
26682668
DBImpl::DeletionState deletion_state(state->db->GetOptions().
26692669
max_write_buffer_number);
26702670
state->mu->Lock();
2671-
MemTable* m = state->mem->Unref();
2672-
if (m != nullptr) {
2673-
deletion_state.memtables_to_free.push_back(m);
2671+
if (state->mem) { // not set for immutable iterator
2672+
MemTable* m = state->mem->Unref();
2673+
if (m != nullptr) {
2674+
deletion_state.memtables_to_free.push_back(m);
2675+
}
26742676
}
26752677
if (state->version) { // not set for memtable-only iterator
26762678
state->version->Unref();

0 commit comments

Comments
 (0)