Skip to content

Unit test failures when using multiple jobs and RANDOM_CTX_SEED #30696

@hodlinator

Description

@hodlinator

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

While testing #30571 using:

RANDOM_CTX_SEED=1 make -j16 check

...I discovered that 97e16f5 from #29625 leads to test failures within the first 10 seconds in blockfilter_index_tests/blockfilter_index_initial_sync, argsman_tests/util_datadir or addrman_tests (probably more).

Running without the environment variable, or single-threaded, passes:

make -j16 check
RANDOM_CTX_SEED=1 make -j1 check

Expected behaviour

Should always work, as it did before 97e16f5.

Steps to reproduce

Console command:

RANDOM_CTX_SEED=1 make -j8 check

Relevant log output

Excerpts:

2024-08-22T14:07:48.334146Z (mocktime: 2020-08-31T15:34:12Z) [basic block filter index] [util/thread.cpp:20] [TraceThread] basic block filter index thread start
2024-08-22T14:07:48.334255Z (mocktime: 2020-08-31T15:34:12Z) [basic block filter index] [flatfile.cpp:69] [Allocate] [validation] Pre-allocating up to position 0x100000 in fltr00000.dat
2024-08-22T14:07:48.334479Z (mocktime: 2020-08-31T15:34:12Z) [basic block filter index] [index/base.cpp:206] [Sync] Syncing basic block filter index with block chain from height 0
2024-08-22T14:07:48.345502Z (mocktime: 2020-08-31T15:34:12Z) [basic block filter index] [index/base.cpp:220] [Sync] basic block filter index is enabled at height 100
2024-08-22T14:07:48.345523Z (mocktime: 2020-08-31T15:34:12Z) [basic block filter index] [util/thread.cpp:22] [TraceThread] basic block filter index thread exit
2024-08-22T14:07:48.434324Z (mocktime: 2020-08-31T15:34:12Z) [test] [flatfile.cpp:44] [Open] Unable to open file /run/user/1001/test_common_Bitcoin Core/cd149241dcbf7d8e2e5ebaf5a96aafdab9953a29260dce4e20e44f11a4b6efa5/regtest/indexes/blockfilter/basic/fltr00000.dat
test/blockfilter_index_tests.cpp(46): error: in "blockfilter_index_tests/blockfilter_index_initial_sync": check filter_index.LookupFilter(block_index, filter) has failed
2024-08-22T14:07:48.434406Z (mocktime: 2020-08-31T15:34:12Z) [test] [flatfile.cpp:44] [Open] Unable to open file /run/user/1001/test_common_Bitcoin Core/cd149241dcbf7d8e2e5ebaf5a96aafdab9953a29260dce4e20e44f11a4b6efa5/regtest/indexes/blockfilter/basic/fltr00000.dat
test/blockfilter_index_tests.cpp(48): error: in "blockfilter_index_tests/blockfilter_index_initial_sync": check filter_index.LookupFilterRange(block_index->nHeight, block_index, filters) has failed
test/blockfilter_index_tests.cpp(55): error: in "blockfilter_index_tests/blockfilter_index_initial_sync": check filter.GetHash() == expected_filter.GetHash() has failed [9a538906e6466ebd2617d321f71bc94e56056ce213d366773699e28158e00614 != b17ba25562f198a43d1fc5e4b7114ac5346c5dcc85b95ed19278bbfa30de301f]
test/argsman_tests.cpp(25): Entering test suite "argsman_tests"
test/argsman_tests.cpp(27): Entering test case "util_datadir"
2024-08-22T14:21:36Z SeedRandomForTest: Setting random seed for current tests to RANDOM_CTX_SEED=0000000000000000000000000000000000000000000000000000000000000001
2024-08-22T14:21:36.227485Z [test] [init/common.cpp:149] [LogPackageVersion] Bitcoin Core version v27.99.0-97e16f57042c (release build)
2024-08-22T14:21:36.227525Z [test] [node/chainstatemanager_args.cpp:57] [ApplyArgsManOptions] Script verification uses 15 additional threads
2024-08-22T14:21:36.227556Z [test] [kernel/context.cpp:18] [Context] Using the 'sse4(1way),sse41(4way),avx2(8way)' SHA256 implementation
2024-08-22T14:21:36.227561Z [test] [random.cpp:114] [ReportHardwareRand] Using RdSeed as an additional entropy source
2024-08-22T14:21:36.227563Z [test] [random.cpp:117] [ReportHardwareRand] Using RdRand as an additional entropy source
2024-08-22T14:21:36.233950Z [test] [script/sigcache.cpp:104] [InitSignatureCache] Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements
2024-08-22T14:21:36.239326Z [test] [validation.cpp:2108] [InitScriptExecutionCache] Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements
test/argsman_tests.cpp(27): Leaving test case "util_datadir"; testing time: 12446us
test/argsman_tests.cpp(171): Entering test case "util_CheckValue"
test_bitcoin: test/util/setup_common.cpp:294: void ChainTestingSetup::LoadVerifyActivateChainstate(): Assertion `status == node::ChainstateLoadStatus::SUCCESS' failed.
make[3]: *** [Makefile:22560: test/argsman_tests.cpp.test] Error 1
Entering test module "Bitcoin Core Test Suite"
test/addrman_tests.cpp(62): Entering test suite "addrman_tests"
test/addrman_tests.cpp(64): Entering test case "addrman_simple"
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: cannot remove all: No such file or directory [/run/user/1001/test_common_Bitcoin Core/cd149241dcbf7d8e2e5ebaf5a96aafdab9953a29260dce4e20e44f11a4b6efa5] [/run/user/1001/test_common_Bitcoin Core/cd149241dcbf7d8e2e5ebaf5a96aafdab9953a29260dce4e20e44f11a4b6efa5/regtest/blocks/rev00000.dat]
make[3]: *** [Makefile:22560: test/addrman_tests.cpp.test] Error 1

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

97e16f5

Operating system and version

NixOS unstable (Linux)

Machine specifications

16 logical cores, intel
SSD

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions