Description
Summary
feature_asset_locks.py intermittently times out while waiting for a freshly mined llmq_test_platform quorum to appear in quorum list.
This reappeared in PR #7309, but that PR only changes Qt file dialog code (src/qt/bitcoin.cpp, src/qt/guiutil.cpp, src/qt/guiutil.h, src/qt/intro.cpp). The failing test is unrelated to the PR diff. The latest develop CI for the PR base (5fd84aa23de0d79770bfc25c4c1393eb4eadbcf8) is green, so this looks intermittent rather than a deterministic base failure.
A previous closed issue, #6748, captured the same failure mode in feature_asset_locks.py at the same wait_for_quorum_list() point.
CI evidence
PR: #7309 (fix(qt): add non-native file dialog option)
Failing check:
linux64-test / Test source- run/job: https://github.com/dashpay/dash/actions/runs/25496950766/job/74825897605
Failure:
TestFramework (INFO): Mining next quorum to check tx 'asset_unlock_tx_late' is still valid...
TestFramework (INFO): Mining quorum: llmq_type_name=llmq_test_platform, llmq_type=106, expected_members=2, expected_connections=1, expected_contributions=2, expected_commitments=2
TestFramework (INFO): Waiting for quorum to appear in the list
...
AssertionError: Predicate ''''
def wait_func():
return quorum_hash in self.nodes[0].quorum('list')[llmq_type_name]
''' not true after 60.0 seconds
Stack:
feature_asset_locks.py:430 test_asset_unlocks()
feature_asset_locks.py:246 mine_quorum_2_nodes()
test_framework.py:2208 mine_quorum()
test_framework.py:2123 wait_for_quorum_list()
Scope check
PR #7309 touches only Qt GUI file dialog plumbing:
src/qt/bitcoin.cpp
src/qt/guiutil.cpp
src/qt/guiutil.h
src/qt/intro.cpp
No functional test, quorum, consensus, mempool, asset lock, or LLMQ code is changed by the PR.
Prior matching failure
Closed issue #6748 reported the same feature_asset_locks.py flake with the same wait_for_quorum_list() predicate timeout while mining an llmq_test_platform quorum for asset_unlock_tx_late.
Conclusion
This appears to be a pre-existing intermittent feature_asset_locks.py / LLMQ test timing flake, not a regression caused by #7309.
Activity
thepastaclaw commentedon May 18, 2026
Additional CI evidence from #7329:
test: stabilize governance superblock waits)linux64_sqlite-test / Test sourceScope check: #7329 only changes:
It does not touch
feature_asset_locks.py, LLMQ, asset locks, mempool sync, or consensus code.Observed failure mode in
feature_asset_locks.pyafter two earlier failed attempts and a final long-running attempt:The failed run was on PR head
fefdd42fc87ec7cc51b4cf97349390a8dc1b3b96. This looks like another pre-existing intermittentfeature_asset_locks.pytiming/sync failure, not caused by #7329.thepastaclaw commentedon Jun 9, 2026
Additional CI evidence from #7348:
fix: penalize oversized notfound messages)linux64-test / Test source56666e902a5fbcffd2cc34ee96164a7bd00abd37317917a89e9a(upstream/develop)Scope check: #7348 only changes:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code, asset locks, mempool sync, or Platform quorum code. The PR-specific test (p2p_tx_download.py) passed in the same failing job.Observed failure mode was another
feature_asset_locks.pyquorum-list timeout after retries:Recent
developCI evidence for the same base commit also supports this being intermittent/pre-existing rather than caused by #7348: run https://github.com/dashpay/dash/actions/runs/27096757128 on317917a89e9ahadlinux64-test / Test sourceandlinux64_sqlite-test / Test sourceboth passing, while the overall run failed elsewhere.Conclusion: this is another pre-existing intermittent
feature_asset_locks.py/ LLMQ quorum timing failure, not a regression caused by #7348.thepastaclaw commentedon Jun 18, 2026
Additional CI evidence from #7348:
fix: penalize oversized notfound messages)linux64_ubsan-test / Test sourcea97b7b4526cc40cb107415c26bcd056083c6b423Scope check: GitHub's PR diff only changes:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code, asset locks, mempool sync, or Platform quorum code. The targetedp2p_tx_download.pytest passed in the same CI run.Observed failure mode:
This is the same intermittent quorum-list timeout pattern tracked here, surfacing again on an unrelated oversized-
notfoundPR.thepastaclaw commentedon Jun 25, 2026
Additional tracker scope check from thepastaclaw/tracker#1559 confirms the current #7348 red check is this same pre-existing flake, not an oversized-
notfoundregression.fix: penalize oversized notfound messages)linux64_ubsan-test / Test sourcea97b7b4526cc40cb107415c26bcd056083c6b423Failure root cause from the log is
feature_asset_locks.pytiming out inmine_quorum_2_nodes()/wait_for_quorum_list()while waiting for a newllmq_test_platformquorum hash to appear inquorum list:Scope check: GitHub's PR file list is only
src/net_processing.cppandtest/functional/p2p_tx_download.py; the targetedp2p_tx_download.pytest passed in the same CI run. No branch change, push, rebase, empty commit, or rerun was performed.thepastaclaw commentedon Jun 27, 2026
Additional CI evidence from #7383:
fix: reject mismatched HD chain wallet records)linux64_tsan-test / Test source8fbae2b3a8528eb0847c92c1d284341c9509cf46Scope check: #7383 only changes:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code, asset locks, mempool sync, or Platform quorum code.Observed failure mode in the TSan job was another intermittent
feature_asset_locks.pysync/propagation failure after three attempts. The final failure happened after mining the nextllmq_test_platformquorum forasset_unlock_tx_late:testmempoolacceptreturned the expected allowed result, but before the test checked the expected empty mempool size, the transaction had propagated from another node and node0's mempool size was already 1:This is not a wallet DB regression from #7383; it is another pre-existing intermittent
feature_asset_locks.pytiming/sync failure in the LLMQ/asset-unlock part of the test.thepastaclaw commentedon Jun 30, 2026
Additional CI evidence from #7395:
ci: update GitHub Actions pins for Node 24)linux64_tsan-test / Test sourceeb1857a3078c22286484ab26170a742d971f5102Scope check: #7395 only changes GitHub workflow YAML files:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code, asset locks, mempool sync, or Platform quorum code. The same CI run hadlinux64-test,linux64_sqlite-test,linux64_ubsan-test,linux64_nowallet-test, andlinux64_multiprocess-testpass; only the TSan functional test shard failed.Observed failure mode was another intermittent
feature_asset_locks.pyPlatform quorum availability failure after retries:The test log immediately before the failure shows the test had just mined/observed a platform quorum and then failed while selecting a quorum for the first asset-unlock transaction. This matches the existing intermittent LLMQ/platform-quorum timing class tracked here, not a regression from the workflow action-pin PR.
thepastaclaw commentedon Jul 1, 2026
Additional tracker confirmation from thepastaclaw/tracker#1676 for #7395:
ci: update GitHub Actions pins for Node 24)linux64_tsan-test / Test sourceeb1857a3078c22286484ab26170a742d971f5102Scope re-check: the true PR diff against its merge base only changes GitHub workflow files:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code, asset locks, mempool sync, or Platform quorum code. A laterdevelopCI run atdfe1e5d8b660e7d160f1f5076912b7c3cbd26257passedlinux64_tsan-test,linux64-test, andlinux64_ubsan-test: https://github.com/dashpay/dash/actions/runs/28469578919No new branch change, push, rebase, empty commit, or rerun was performed. This remains consistent with the existing intermittent
feature_asset_locks.py/ LLMQ platform-quorum timing class tracked here, not a regression from #7395.thepastaclaw commentedon Jul 3, 2026
Additional tracker re-check from thepastaclaw/tracker#1739 for the same #7383 CI run confirms this is still pre-existing flakiness, not a wallet DB regression.
Scope: GitHub PR diff is only src/wallet/walletdb.cpp and src/wallet/test/walletdb_tests.cpp. The failing test is feature_asset_locks.py, which failed after asset_unlock_tx_late testmempoolaccept because node0's mempool size had already become 1 while the test still expected 0. No branch mutation was made.
thepastaclaw commentedon Jul 3, 2026
Additional tracker re-check from thepastaclaw/tracker#1761 for the same #7383 CI run confirms this is still pre-existing flakiness, not a wallet DB regression.
Scope: GitHub PR diff is only src/wallet/walletdb.cpp and src/wallet/test/walletdb_tests.cpp. The failing test is feature_asset_locks.py, which failed after asset_unlock_tx_late testmempoolaccept because node0's mempool size had already become 1 while the test still expected 0. No branch mutation was made. No new findings beyond the prior tracker#1739 diagnosis.
thepastaclaw commentedon Jul 4, 2026
Additional CI evidence from #7405:
test: fix LLMQ commitment log capture race)linux64_ubsan-test / Test source2732bfde8c80656b1f95df212e6becdf402b89f4Scope check: #7405 changes only:
It does not touch
feature_asset_locks.py, LLMQ quorum mining/test framework code used by that functional test, asset locks, mempool sync, or Platform quorum code. The PR-specific C++ test target was built successfully; the failing job failed only in the functional test shard.Observed failure mode is the same intermittent Platform-quorum availability class tracked here.
feature_asset_locks.pyhad already loggedCredit pool amount matched with '1000141421', then failed while creating the first asset unlock because quorum selection found no active quorums:No branch mutation, push, rebase, empty commit, or CI rerun was performed. This remains consistent with pre-existing
feature_asset_locks.py/ LLMQ Platform-quorum timing flakiness, not a regression from #7405.thepastaclaw commentedon Jul 4, 2026
Additional tracker re-check from thepastaclaw/tracker#1782 for the same #7383 CI run confirms this is still pre-existing flakiness, not a wallet DB regression.
Scope: GitHub PR diff is only src/wallet/walletdb.cpp and src/wallet/test/walletdb_tests.cpp. The failing test is feature_asset_locks.py, which failed after asset_unlock_tx_late testmempoolaccept because node0's mempool size had already become 1 while the test still expected 0. No branch mutation was made. No new findings beyond the prior tracker#1761 diagnosis.
thepastaclaw commentedon Jul 6, 2026
Additional tracker re-check from thepastaclaw/tracker#1788 for the same #7383 CI run confirms this remains pre-existing flakiness, not a wallet DB regression.
fix: reject mismatched HD chain wallet records)linux64_tsan-test / Test source8fbae2b3a8528eb0847c92c1d284341c9509cf46Scope: the mandatory two-dot diff was run, but
upstream/develophas advanced past the PR base and includes unrelated develop-side drift. The actual merge-base PR diff is still only:The failing test is
feature_asset_locks.py, which failed afterasset_unlock_tx_latetestmempoolacceptbecause node0's mempool size had already become 1 while the test still expected 0. No PR branch mutation was made. No new findings beyond the prior tracker#1782 diagnosis.thepastaclaw commentedon Jul 7, 2026
Additional CI evidence from #7404:
feat(rpc): expose upcoming DKG participation)linux64_tsan-test / Test sourcea45cdad1efdd226d8b5a641b54babf9c5157cb49Observed failure mode is the same intermittent
feature_asset_locks.py/ Platform-quorum availability timeout tracked here. The test failed after retries while mining anllmq_test_platformquorum intest_v24_fork():Scope check: the actual PR diff is limited to:
The failing test file
feature_asset_locks.pyis not changed. The PR's LLMQ utility changes preserve the existing production quorum-member path for normal quorum mining; the new prediction helpers are used byquorum dkginfo, while all source-build jobs and the PR-touched functional-test areas passed. This failure also occurred only in the TSan functional shard, consistent with this issue's existing timing/availability class.No branch mutation, push, rebase, empty commit, or CI rerun was performed for this unrelated flake.
thepastaclaw commentedon Jul 8, 2026
Additional occurrence while triaging #7350 CI:
Merge dashpay#7411: test: stabilize asset locks functional test
thepastaclaw commentedon Jul 8, 2026
Additional tracker re-check from thepastaclaw/tracker#1819 for the same #7383 CI run confirms this remains pre-existing flakiness, not a wallet DB regression.
fix: reject mismatched HD chain wallet records)linux64_tsan-test / Test source8fbae2b3a8528eb0847c92c1d284341c9509cf46Scope: the required two-dot diff was run, but
upstream/develophas advanced past the PR base and includes unrelated develop-side drift. The actual merge-base PR diff is still only:The failing test is
feature_asset_locks.py, which failed afterasset_unlock_tx_latetestmempoolacceptbecause node0's mempool size had already become 1 while the test still expected 0. No PR branch mutation was made. No new findings beyond the prior #1788 diagnosis.thepastaclaw commentedon Jul 8, 2026
Additional CI evidence from #7422:
ci: make conflict prediction advisory)linux64_tsan-test / Test source9f030351b87181e2a65f28c8b502a01f5b3238d5Observed failure mode is the same intermittent
feature_asset_locks.py/ Platform-quorum availability timeout tracked here. The final attempt failed intest_v24_fork()while mining anllmq_test_platformquorum:Scope check: the actual merge-base PR diff only changes:
The mandatory two-dot diff against current
upstream/developincludes unrelated develop-side drift because the branch base is older, but the GitHub PR diff / merge-base diff does not touchfeature_asset_locks.py, LLMQ quorum mining, asset locks, or the functional-test framework. A local non-TSAN run offeature_asset_locks.pyon the PR worktree passed with--timeout-factor=4. No PR branch mutation, push, rebase, empty commit, or CI rerun was performed.thepastaclaw commentedon Jul 8, 2026
Additional CI evidence from #7418 after #7310 was closed:
fix(net): bound signing message vector intake)linux64_multiprocess-test / Test sourced862d6cf2a1b3d958890d8e33c8127f76394ffabObserved failure mode is the same
feature_asset_locks.py/ Platform-quorum timeout class tracked here. The final retry failed intest_v24_fork()while mining the nextllmq_test_platformquorum:Scope check: the actual merge-base PR diff changes only:
The failing
feature_asset_locks.pyfile is not part of the PR diff. Currentdevelopincludes #7411 (test: stabilize asset locks functional test), while this PR head predates that unrelated stabilization change. No PR branch mutation, push, rebase, empty commit, or CI rerun was performed for this unrelated failure.test: ignore MnEHF signal txs in asset lock mempool accounting
Merge #7509: test: fix remaining feature_asset_locks flake from auton…