Skip to content

python-integration-tests deadlocks: this release adds confirm screens the pinned tests never ack #466

Description

@BitHighlander

python-integration-tests has been carried through this release as "a pre-existing CI blocker". It is now diagnosed rather than merely observed.

It is not a slow suite — it is two files that stall

Reproduced locally against the pinned emulator image, at both 440619703 (pre-release-work base) and head:

file base 4406197 head
test_msg_eos_signtx.py 19 tests pass, then stalls same
test_msg_thorchain_signtx.py 5 tests pass, then stalls same

Each was killed at a 60s local timeout. Everything else in the suite completes in well under a second per file. So the 30-minute CI wall clock is consumed by these two, and the job is killed rather than failing.

Why that matters more than a red check

scripts/emulator/python-keepkey-tests.sh runs Phase 1 (screenshot capture, || true) and then Phase 2 — the documented actual gate. Because the job is killed inside Phase 2, Phase 2 never completes on this branch, generate-test-report.py never validates against SECTIONS, and every test file ordered after the stall is simply unmeasured.

A hang is worse than a failure here: it produces no JUnit XML for the affected range, so absence of a failure report is not evidence of passing.

Measurement trap for whoever picks this up

Do not measure by running the suite sequentially against one emulator. A killed hang leaves the device wedged, and every subsequent file reports spurious collection errors and failures. I initially recorded five collection errors and four failures this way; re-running each file against a fresh emulator showed most of them clean. Use one emulator per file.

Suggested fix direction

Bound the stall rather than the job: add a per-test timeout (pytest-timeout) so a stuck test fails its own test instead of consuming the whole budget, and give the two files a real diagnosis separately. Related prior context: THORChain tests have historically depended on network hosts that are now dead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions