-
Notifications
You must be signed in to change notification settings - Fork 1.2k
test: feature_llmq_signing.py --spork21 intermittent timeout in wait_for_sigs #7255
Description
Summary
feature_llmq_signing.py --spork21 intermittently fails with a wait_until() timeout in wait_for_sigs(). The failure is timing-dependent and not reproducible — the same test passes on develop and the non---spork21 variant passes consistently on the same CI run.
Failure Details
Test: feature_llmq_signing.py --spork21
Error: AssertionError: Predicate '' not true after N seconds
Location: feature_llmq_signing.py:111 → wait_for_sigs(True, False, True, 15) (15s timeout)
Traceback:
File "feature_llmq_signing.py", line 111, in run_test
wait_for_sigs(True, False, True, 15)
File "feature_llmq_signing.py", line 60, in wait_for_sigs
self.wait_until(lambda: check_sigs(hasrecsigs, isconflicting1, isconflicting2), timeout = timeout)
AssertionError: Predicate '' not true after <timeout> seconds
Retry behavior: Failed all 3 CI retry attempts (attempt 1: 128s, attempt 2: 114s, attempt 3: 131s)
CI Log Links
- Failing run on PR fix: register shareman recovery interface in ActiveContext #7244: https://github.com/dashpay/dash/actions/runs/23441584574/job/68207659502
- Passing run on develop (same commit after merge): https://github.com/dashpay/dash/actions/runs/23505322590 —
linux64_multiprocess-test / Test sourcepassed
Evidence of Flakiness
- The non-
--spork21variant (feature_llmq_signing.py) passed on the exact same CI run - The
--spork21variant passed on develop after the PR was merged (CI run 23505322590) - PR fix: register shareman recovery interface in ActiveContext #7244 only modifies
src/active/context.cpp(addsshareman->RegisterRecoveryInterface()) — no test files or LLMQ signing logic changed
Root Cause Analysis
The 15-second timeout in wait_for_sigs() appears insufficient for the multiprocess test environment under CI load. The --spork21 variant likely exercises a slightly different code path that takes marginally longer, hitting the timeout under resource contention.
Suggested Fix
Consider increasing the timeout in wait_for_sigs() calls within the --spork21 path, or using self.options.timeout_factor to scale timeouts appropriately for CI environments.