Skip to content

test: verify_db_legacy intermittently races txindex synchronization #7443

Description

@thepastaclaw

Failure

evo_dip3_activation_tests/verify_db_legacy intermittently fails in CI at src/test/evo_deterministicmns_tests.cpp:102:

fatal error: in "evo_dip3_activation_tests/verify_db_legacy": critical check txFrom has failed

Latest occurrence: https://github.com/dashpay/dash/actions/runs/29099324049/job/86389057100

This occurred in the linux64_sqlite-build / Build source job for #7424. That PR changes only src/chainlock/handler.cpp, src/chainlock/handler.h, and src/test/llmq_chainlock_tests.cpp; it does not touch the failing deterministic-masternode test.

Root cause

FuncVerifyDB mines a non-coinbase collateral transaction, then a later signing path looks it up through GetTransaction/g_txindex. The txindex background thread is asynchronous, so the lookup can race indexing and return no transaction.

Open PR #7266 already contains the focused fix: wait for txindex synchronization before querying the mined non-coinbase transaction. It also cites an earlier occurrence in run 23958304920.

Reproduction / evidence

The failure is intermittent. On the #7424 branch build, the focused command passed 10 consecutive runs:

src/test/test_dash --run_test=evo_dip3_activation_tests/verify_db_legacy --catch_system_errors=no --log_level=test_suite

CI hit the race once with random seed ddfad7b3915a91009dd907bd1a76abcfe8e3ad8703752f0ed29110aa6c26201f.

Proposed resolution

Rebase/refresh and merge #7266 (or an equivalent txindex synchronization fix).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions