aboutsummaryrefslogtreecommitdiff
path: root/src/txdb.cpp
diff options
context:
space:
mode:
authorSuhas Daftuar <[email protected]>2017-06-15 17:08:48 -0400
committerPieter Wuille <[email protected]>2017-06-26 14:48:42 -0700
commit176c021d085f5a45bc9e038e760942aa648dd797 (patch)
treecd057e23d8dedece53ffa4db73efa245c204b796 /src/txdb.cpp
parentDont create pcoinsTip until after ReplayBlocks. (diff)
downloaddiscoin-176c021d085f5a45bc9e038e760942aa648dd797.tar.xz
discoin-176c021d085f5a45bc9e038e760942aa648dd797.zip
[qa] Test non-atomic chainstate writes
Adds new functional test, dbcrash.py, which uses -dbcrashratio to exercise the logic for recovering from a crash during chainstate flush. dbcrash.py is added to the extended tests, as it may take ~10 minutes to run Use _Exit() instead of exit() for crash simulation This eliminates stderr output such as: terminate called without an active exception or Assertion failed: (!pthread_mutex_destroy(&m)), function ~recursive_mutex, file /usr/local/include/boost/thread/pthread/recursive_mutex.hpp, line 104. Eliminating the stderr output on crash simulation allows testing with test_runner.py, which reports a test as failed if stderr is produced.
Diffstat (limited to 'src/txdb.cpp')
-rw-r--r--src/txdb.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp
index 4cdfc7d6f..d24162ba2 100644
--- a/src/txdb.cpp
+++ b/src/txdb.cpp
@@ -124,7 +124,7 @@ bool CCoinsViewDB::BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock) {
static FastRandomContext rng;
if (rng.randrange(crash_simulate) == 0) {
LogPrintf("Simulating a crash. Goodbye.\n");
- exit(0);
+ _Exit(0);
}
}
}