facebook / facebook/rocksdb

assert fail

Open
#5,126 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
32.1k
Forks
6.9k
Avg merge
32m
Merged PRs (30d)
1

Description

https://github.com/facebook/rocksdb/blob/d77476ef557078d89f545efbe33bc8825b07237a/db/db_impl_compaction_flush.cc#L142

when rocksdb do flush job, it holds all column family which need to be flushed, and then flush column family one by one.

consider below scenario:
1. flush thread 1 pick column family a、b、c, then flush a (release the mutex lock).
2. user write column family c and memtable full, column family c will be inserted into flush queue.
3. flush thread 2 pick column family c, then flush c (pick all available memtables)
4. flush thread 1 done column family a、b
5. flush thread 2 done column c
6. flush thread begin to do column family c, no available memtable to flush, assert fail

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.