Skip to content

Harden live CNMV retries and timeout diagnostics - #8

Merged
JaviChulvi merged 1 commit into
mainfrom
fix/live-smoke-timeouts
Sep 27, 2026
Merged

JaviChulvi merged 1 commit into
mainfrom
fix/live-smoke-timeouts

Conversation

@JaviChulvi

@JaviChulvi JaviChulvi commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

The September 26 nightly run failed after two CNMV listing read timeouts. This change makes transient failures distinguishable from permanent errors and keeps all smoke-test attempts within the Actions job budget.

  • Request errors include the exception type and URL, with a retryable marker for recognized transport failures and HTTP 408/429/500/502/503/504. CLI exit codes, successful JSON output, and the 30-second request timeout stay unchanged.
  • The live helper retries once after 10 seconds, logs each attempt's limit/duration/exit status, and fails immediately on permanent errors or subprocess timeouts. List, download, compare, and retry delays share a 16-minute deadline; the workflow step has a 17-minute cap within the 20-minute job.
  • Offline tests cover recovery, exhausted retries, permanent HTTP/certificate/filesystem errors, network failures, subprocess timeout output, and shared deadlines. The repository skill documents the updated error and test behavior.

Validation: 71 tests passed on Python 3.11 and 3.14 (live test skipped in offline runs); the full live list/download/compare check passed locally in 29.4 seconds. Ruff, compileall, lockfile validation, diff checks, and actionlint passed.

GitHub validation also passed on commit 216fce3: PR checks and manual workflow including real CNMV list/download/compare.

Simpler option considered: retain the existing broad CNMV request failed retry check and only increase its delay.
Rejected because: it retries permanent HTTP and filesystem failures; the new deterministic cases verify these fail immediately. Classification at the request boundary also retains exception types when timeout messages are empty, without introducing new exit codes or regex parsing.

Failure investigated: https://github.com/JaviChulvi/cnmv-cli/actions/runs/36274458879

@JaviChulvi
JaviChulvi merged commit 65107c0 into main Sep 27, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant