5894761056
Summary: Test only, no change to functionality. Extremely low risk of library regression. Update test key generation by maintaining existing and non-existing keys. Update db_crashtest.py to drive multiops_txn stress test for both write-committed and write-prepared. Add a make target 'blackbox_crash_test_with_multiops_txn'. Running the following commands caught the bug exposed in https://github.com/facebook/rocksdb/issues/9571. ``` $rm -rf /tmp/rocksdbtest/* $./db_stress -progress_reports=0 -test_multi_ops_txns -use_txn -clear_column_family_one_in=0 \ -column_families=1 -writepercent=0 -delpercent=0 -delrangepercent=0 -customopspercent=60 \ -readpercent=20 -prefixpercent=0 -iterpercent=20 -reopen=0 -ops_per_thread=1000 -ub_a=10000 \ -ub_c=100 -destroy_db_initially=0 -key_spaces_path=/dev/shm/key_spaces_desc -threads=32 -read_fault_one_in=0 $./db_stress -progress_reports=0 -test_multi_ops_txns -use_txn -clear_column_family_one_in=0 -column_families=1 -writepercent=0 -delpercent=0 -delrangepercent=0 -customopspercent=60 -readpercent=20 \ -prefixpercent=0 -iterpercent=20 -reopen=0 -ops_per_thread=1000 -ub_a=10000 -ub_c=100 -destroy_db_initially=0 \ -key_spaces_path=/dev/shm/key_spaces_desc -threads=32 -read_fault_one_in=0 ``` Running the following command caught a bug which will be fixed in https://github.com/facebook/rocksdb/issues/9648 . ``` $TEST_TMPDIR=/dev/shm make blackbox_crash_test_with_multiops_wc_txn ``` Pull Request resolved: https://github.com/facebook/rocksdb/pull/9568 Reviewed By: jay-zhuang Differential Revision: D34308154 Pulled By: riversand963 fbshipit-source-id: 99ff1b65c19b46c471d2f2d3b47adcd342a1b9e7
88 lines
3.3 KiB
Makefile
88 lines
3.3 KiB
Makefile
# This file is used by Meta-internal infrastructure as well as by Makefile
|
|
|
|
# When included from Makefile, there are rules to build DB_STRESS_CMD. When
|
|
# used directly with `make -f crashtest.mk ...` there will be no rules to
|
|
# build DB_STRESS_CMD so it must exist prior.
|
|
DB_STRESS_CMD?=./db_stress
|
|
|
|
include python.mk
|
|
|
|
CRASHTEST_MAKE=$(MAKE) -f crash_test.mk
|
|
CRASHTEST_PY=$(PYTHON) -u tools/db_crashtest.py --stress_cmd=$(DB_STRESS_CMD)
|
|
|
|
.PHONY: crash_test crash_test_with_atomic_flush crash_test_with_txn \
|
|
crash_test_with_best_efforts_recovery crash_test_with_ts \
|
|
blackbox_crash_test blackbox_crash_test_with_atomic_flush \
|
|
blackbox_crash_test_with_txn blackbox_crash_test_with_ts \
|
|
blackbox_crash_test_with_best_efforts_recovery \
|
|
whitebox_crash_test whitebox_crash_test_with_atomic_flush \
|
|
whitebox_crash_test_with_txn whitebox_crash_test_with_ts \
|
|
blackbox_crash_test_with_multiops_wc_txn \
|
|
blackbox_crash_test_with_multiops_wp_txn
|
|
|
|
crash_test: $(DB_STRESS_CMD)
|
|
# Do not parallelize
|
|
$(CRASHTEST_MAKE) whitebox_crash_test
|
|
$(CRASHTEST_MAKE) blackbox_crash_test
|
|
|
|
crash_test_with_atomic_flush: $(DB_STRESS_CMD)
|
|
# Do not parallelize
|
|
$(CRASHTEST_MAKE) whitebox_crash_test_with_atomic_flush
|
|
$(CRASHTEST_MAKE) blackbox_crash_test_with_atomic_flush
|
|
|
|
crash_test_with_txn: $(DB_STRESS_CMD)
|
|
# Do not parallelize
|
|
$(CRASHTEST_MAKE) whitebox_crash_test_with_txn
|
|
$(CRASHTEST_MAKE) blackbox_crash_test_with_txn
|
|
|
|
crash_test_with_best_efforts_recovery: blackbox_crash_test_with_best_efforts_recovery
|
|
|
|
crash_test_with_ts: $(DB_STRESS_CMD)
|
|
# Do not parallelize
|
|
$(CRASHTEST_MAKE) whitebox_crash_test_with_ts
|
|
$(CRASHTEST_MAKE) blackbox_crash_test_with_ts
|
|
|
|
blackbox_crash_test: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --simple blackbox $(CRASH_TEST_EXT_ARGS)
|
|
$(CRASHTEST_PY) blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_atomic_flush: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --cf_consistency blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_txn: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --txn blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_best_efforts_recovery: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --test_best_efforts_recovery blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_ts: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --enable_ts blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_multiops_wc_txn: $(DB_STRESS_CMD)
|
|
$(PYTHON) -u tools/db_crashtest.py --test_multiops_txn --write_policy write_committed blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
blackbox_crash_test_with_multiops_wp_txn: $(DB_STRESS_CMD)
|
|
$(PYTHON) -u tools/db_crashtest.py --test_multiops_txn --write_policy write_prepared blackbox $(CRASH_TEST_EXT_ARGS)
|
|
|
|
ifeq ($(CRASH_TEST_KILL_ODD),)
|
|
CRASH_TEST_KILL_ODD=888887
|
|
endif
|
|
|
|
whitebox_crash_test: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --simple whitebox --random_kill_odd \
|
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|
|
$(CRASHTEST_PY) whitebox --random_kill_odd \
|
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|
|
|
|
whitebox_crash_test_with_atomic_flush: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --cf_consistency whitebox --random_kill_odd \
|
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|
|
|
|
whitebox_crash_test_with_txn: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --txn whitebox --random_kill_odd \
|
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|
|
|
|
whitebox_crash_test_with_ts: $(DB_STRESS_CMD)
|
|
$(CRASHTEST_PY) --enable_ts whitebox --random_kill_odd \
|
|
$(CRASH_TEST_KILL_ODD) $(CRASH_TEST_EXT_ARGS)
|