Revision effd9dd1e1eaadb6109dde0eb6dabc07c8ac2fec authored by Andres Noetzli on 29 August 2015, 01:06:32 UTC, committed by Andres Noetzli on 29 August 2015, 01:06:32 UTC
Summary: MarkLogsSynced() was doing `logs_.erase(it++);`. The standard is saying: ``` all iterators and references are invalidated, unless the erased members are at an end (front or back) of the deque (in which case only iterators and references to the erased members are invalidated) ``` Because `it` is an iterator to the first element of the container, it is invalidated, only one iteration is executed and `log.getting_synced = false;` is not being done, so `while (logs_.front().getting_synced)` in `WriteImpl()` is not terminating. Test Plan: make db_bench && ./db_bench --benchmarks=fillsync Reviewers: igor, rven, IslamAbdelRahman, anthony, kradhakrishnan, yhchiang, sdong, tnovak Reviewed By: tnovak Subscribers: kolmike, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D45807
1 parent 72a9b73
File | Mode | Size |
---|---|---|
arcanist_util | ||
build_tools | ||
coverage | ||
db | ||
doc | ||
examples | ||
hdfs | ||
include | ||
java | ||
port | ||
table | ||
third-party | ||
tools | ||
util | ||
utilities | ||
.arcconfig | -rw-r--r-- | 564 bytes |
.clang-format | -rw-r--r-- | 138 bytes |
.gitignore | -rw-r--r-- | 599 bytes |
.travis.yml | -rw-r--r-- | 1.1 KB |
AUTHORS | -rw-r--r-- | 247 bytes |
CMakeLists.txt | -rw-r--r-- | 12.8 KB |
CONTRIBUTING.md | -rw-r--r-- | 733 bytes |
DUMP_FORMAT.md | -rw-r--r-- | 763 bytes |
HISTORY.md | -rw-r--r-- | 25.4 KB |
INSTALL.md | -rw-r--r-- | 3.4 KB |
LICENSE | -rw-r--r-- | 1.6 KB |
Makefile | -rw-r--r-- | 36.9 KB |
PATENTS | -rw-r--r-- | 1.9 KB |
README.md | -rw-r--r-- | 1.2 KB |
ROCKSDB_LITE.md | -rw-r--r-- | 1.0 KB |
USERS.md | -rw-r--r-- | 1.9 KB |
Vagrantfile | -rw-r--r-- | 862 bytes |
WINDOWS_PORT.md | -rw-r--r-- | 12.5 KB |
appveyor.yml | -rw-r--r-- | 225 bytes |
src.mk | -rw-r--r-- | 19.6 KB |
thirdparty.inc | -rw-r--r-- | 5.5 KB |
Computing file changes ...