Commit d68bc28
committed
Merge #6785: test: fix intermittent error in wait_for_quorum_commitment
928cf34 test: use '0'x96 instead 00000..0 (Konstantin Akimov)
ab9fc70 test: apply default 0.05 delay for wait_for_quorum_commitment (Konstantin Akimov)
848433c fix: intermittent error in functional tests while waiting final quorum commitment (Konstantin Akimov)
3509e55 feat: a bit of extra logs when no DB_VVEC in database (Konstantin Akimov)
Pull request description:
## Issue being fixed or feature implemented
Fixes #6748
RPC `dkgstatus` return mineable commitment even if node does not have any information about quorum commitment.
See `CQuorumBlockProcessor::GetMineableCommitments` for details of implementation.
It happens if `wait_for_quorum_commitment` is called before node received QC by p2p.
commitment: {'version': 3,
'llmqType': 104,
'quorumHash': '70bd80a3e00da0c13ba11a12e5e3665baf1c5574f5b3003bb5b31500cab5cec9',
'quorumIndex': 0,
'signersCount': 0,
'signers': '00',
'validMembersCount': 0,
'validMembers': '00',
'quorumPublicKey': '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
'quorumVvecHash': '0000000000000000000000000000000000000000000000000000000000000000',
'quorumSig': '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
'membersSig': '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
}
This failure can happen not only for feature_asset_locks.py but for each functional tests that uses quorums, but it happened most often for feature_asset_locks.py because there is only 2 nodes instead 3 and it happens more often.
Issue indeed has been observed by me in other functional tests, but that had happens rarely compare to feature_asset_locks.py
## What was done?
Helper `wait_for_quorum_commitment` validates that not just commitment is provided (which can be mock), but a public key is not 00...00.
## How Has This Been Tested?
Run multiple feature_asset_locks.py and wait for a failure like that to happen, which happens no more with this PR:
2025-07-08T16:39:57.003000Z TestFramework (INFO): Mining final commitment
2025-07-08T16:39:58.019000Z TestFramework (INFO): Waiting for quorum to appear in the list
2025-07-08T16:39:58.019000Z TestFramework (INFO): quorums: {'llmq_test': ['165c35bff42cae1499590010f323bba4e19922639ea220220017aae028df0281', '6bb33b6cd447df28f8adb171b93001e6b223bb42662466795f7fd482ddfc7fbf'], 'llmq_test_instantsend': ['165c35bff42cae1499590010f323bba4e19922639ea220220017aae028df0281', '6bb33b6cd447df28f8adb171b93001e6b223bb42662466795f7fd482ddfc7fbf'], 'llmq_test_dip0024': [], 'llmq_test_platform': ['165c35bff42cae1499590010f323bba4e19922639ea220220017aae028df0281', '6bb33b6cd447df28f8adb171b93001e6b223bb42662466795f7fd482ddfc7fbf']}
2025-07-08T16:40:58.050000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
2025-07-08T16:40:58.9769454Z def wait_func():
2025-07-08T16:40:58.9769845Z return quorum_hash in self.nodes[0].quorum('list')[llmq_type_name]
## Breaking Changes
N/A
## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone
ACKs for top commit:
UdjinM6:
utACK 928cf34
kwvg:
utACK 928cf34
Tree-SHA512: 2d96ac633bd7178fc9457fb5cc7dd8eac971689071fc951cd77d6ab847a4f451ac5a17707ede6c58af3631d3be1abb4c22aa059fdde2599275303c15d09b61ebFile tree
2 files changed
+6
-1
lines changed- src/llmq
- test/functional/test_framework
2 files changed
+6
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
317 | 317 | | |
318 | 318 | | |
319 | 319 | | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
320 | 323 | | |
321 | 324 | | |
322 | 325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2072 | 2072 | | |
2073 | 2073 | | |
2074 | 2074 | | |
| 2075 | + | |
| 2076 | + | |
2075 | 2077 | | |
2076 | 2078 | | |
2077 | 2079 | | |
2078 | 2080 | | |
2079 | 2081 | | |
2080 | 2082 | | |
2081 | | - | |
| 2083 | + | |
2082 | 2084 | | |
2083 | 2085 | | |
2084 | 2086 | | |
| |||
0 commit comments