Description
Summary
linux64-test / Test source can intermittently lose the shared RPC coverage temp directory during the coverage-enabled functional test run, causing otherwise unrelated tests to crash with FileNotFoundError in test_framework/coverage.py.
CI occurrence
- PR: ci: migrate primary CI jobs to ARM runners #7232 (
ci: migrate primary CI jobs to ARM runners) - CI run: https://github.com/dashpay/dash/actions/runs/24081094106
- Job:
linux64-test / Test source(70248433408) - Log artifact:
test_logs-linux64-38414582
Failure mode
Two tests in the same run failed while trying to append RPC coverage data:
p2p_dns_seeds.py
File "/__w/dash/dash/build-ci/dashcore-linux64/test/functional/test_framework/coverage.py", line 57, in _log_call
with open(self.coverage_logfile, 'a+', encoding='utf8') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/coverage14baegnk/coverage.pid18731.node0.txt'feature_csv_activation.py
File "/__w/dash/dash/build-ci/dashcore-linux64/test/functional/test_framework/coverage.py", line 57, in _log_call
with open(self.coverage_logfile, 'a+', encoding='utf8') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/coverage14baegnk/coverage.pid19055.node0.txt'Both failures point at the same missing shared coverage directory:
/tmp/coverage14baegnk
Diagnosis
test/functional/test_runner.py creates one shared coverage directory with tempfile.mkdtemp(prefix="coverage") and passes it to all tests via --coveragedir=....
In this run, that directory disappeared while tests were still executing, so later RPC calls crashed when the coverage wrapper tried to append to coverage.pid*.txt.
This does not look related to the PR's actual diff (only CI workflow/env files plus test/get_previous_releases.py were changed), and it is separate from the concurrent known feature_llmq_signing.py flake in the same job.
Reproduction
No deterministic local repro yet.
Observed in CI during the standard coverage-enabled linux64 functional test run.
Activity