Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 1.6 KB

README.rst

File metadata and controls

56 lines (41 loc) · 1.6 KB

BF-8424

Invalid memory access in mongod when running concurrent fuzzer.

Setup

The reason we're building with clang instead of gcc here is to avoid the mongo shell consistently segfaulting during garbage collection when run under rr.

cd mongo
git checkout 0ebab66992c4bd382b1a0acb90549b3d161f3791
python2 buildscripts/scons.py     \
    -j$(nproc)                    \
    --disable-warnings-as-errors  \
    CC=clang                      \
    CXX=clang++                   \
    mongo mongod
git checkout visemet/mongodb-rr-experiment
git am ../bf-8424/patches/0001-Remove-enableMajorityReadConcern-option-from-mongod.patch
git am ../bf-8424/patches/0002-Remove-transactionLifetimeLimitSeconds-server-parame.patch

rm -rf ~/.local/share/rr/*
python2 buildscripts/resmoke.py  \
    -j$(( $(nproc) / 2 ))        \
    --repeatTests=1000           \
    --continueOnFailure          \
    --log=file                   \
    --reportFile=report.json     \
    --rr=chaos                   \
    --suite=jstestfuzz           \
    --numClientsPerFixture=10    \
    ../bf-8424/3c79-mdb_0eba-ent_b8ac-qa_a6ce-1521141161647-72.js

Results

The 1000 runs were interrupted due to resmoke.py halting test execution after the mongod process had segfaulted.

  • 1 / 232 when using --rr=chaos

    $ du -hs ~/.local/share/rr
    2.9G    /home/ubuntu/.local/share/rr
  • 1 / 973 when using --rr=record

  • 0 / 1000 when using --rr=off