Skip to content

fix: bump test_browser.py Node subprocess timeout from 30s to 60s (#694)#704

Merged
aallan merged 1 commit into
mainfrom
fix/694-windows-node-timeout
May 28, 2026
Merged

fix: bump test_browser.py Node subprocess timeout from 30s to 60s (#694)#704
aallan merged 1 commit into
mainfrom
fix/694-windows-node-timeout

Conversation

@aallan

@aallan aallan commented May 28, 2026

Copy link
Copy Markdown
Owner

Summary

Bump the subprocess.run timeout in tests/test_browser.py from 30s to 60s at both call sites. The previous 30s budget was insufficient for cold Node startup on Windows GitHub Actions runners combined with the --experimental-wasm-exnref flag's first-execution V8 codegen cost.

Changes

Test plan

  • CI green across the full 12-cell test matrix
  • test (windows-latest, 3.12) specifically — the flake's most common cell — passes without retry
  • No regression in other cells (the bump is universal; only timeout values change, no logic touched)
  • Follow-up: if the flake recurs on the 60s budget over the next several PRs, escalate to one of the "out of scope" alternatives in the Bump test_browser.py Node subprocess timeout from 30s to 60s to reduce Windows CI flakes #694 body (Windows skip or per-module flag emission)

Closes #694

🤖 Generated with Claude Code

Summary by CodeRabbit

Bug Fixes

  • Fixed intermittent timeout failures on Windows and macOS CI runners, particularly affecting Python 3.12 environments. Increased execution time allowance to accommodate cold start overhead and experimental WebAssembly features, improving test reliability across the CI matrix.

Review Change Stack

The 30s timeout in tests/test_browser.py was insufficient for cold
Node startup on Windows GitHub Actions runners combined with the
--experimental-wasm-exnref flag first-execution V8 codegen cost.

Symptom: intermittent subprocess.TimeoutExpired on
test (windows-latest, 3.12) only.  Asymmetric across the matrix
(3.11 and 3.13 running back-to-back on the same runner benefit from
a warm cache) — the asymmetry is the signature of cold-cache infra
variance rather than a Vera regression.

Both call sites (lines 160 and 1736) now use timeout=60 with an
explanatory comment pointing at #694.  60s gives ~2x the median
budget without making real hangs painful to detect.

Also removes the corresponding row from KNOWN_ISSUES.md Bugs
section and adds a CHANGELOG entry under Unreleased / Fixed.

Closes #694

Co-Authored-By: Claude <noreply@anthropic.invalid>
@codecov

codecov Bot commented May 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.92%. Comparing base (3fe9f36) to head (10e0248).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #704   +/-   ##
=======================================
  Coverage   90.92%   90.92%           
=======================================
  Files          60       60           
  Lines       23606    23606           
  Branches      259      259           
=======================================
  Hits        21464    21464           
  Misses       2135     2135           
  Partials        7        7           
Flag Coverage Δ
javascript 57.43% <ø> (ø)
python 94.65% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9af1961c-dcd0-49b6-b1a1-38ac96344af9

📥 Commits

Reviewing files that changed from the base of the PR and between 3fe9f36 and 10e0248.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • KNOWN_ISSUES.md
  • tests/test_browser.py
💤 Files with no reviewable changes (1)
  • KNOWN_ISSUES.md

📝 Walkthrough

Walkthrough

This PR increases the subprocess.run timeout in tests/test_browser.py from 30 seconds to 60 seconds at two call sites (_run_node and test_cli_target_browser) to mitigate intermittent timeouts on Windows CI runners. Node startup overhead and V8's --experimental-wasm-exnref cold-codegen cost combine to exceed 30s on slow runner instances. The fix is documented in the CHANGELOG and the resolved issue is removed from KNOWN_ISSUES.

Changes

Node subprocess timeout increase and documentation

Layer / File(s) Summary
Subprocess timeout increase
tests/test_browser.py
_run_node harness execution and test_cli_target_browser CLI invocation both increase their subprocess timeout from 30s to 60s with comments explaining Node/V8 exnref cold-codegen variance on Windows.
Changelog and known issues documentation
CHANGELOG.md, KNOWN_ISSUES.md
CHANGELOG documents the timeout fix under Unreleased/Fixed; KNOWN_ISSUES removes the now-resolved issue #694 entry for intermittent Windows test timeouts.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested labels

tests, docs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main change: bumping subprocess timeouts in test_browser.py from 30s to 60s, with issue reference.
Linked Issues check ✅ Passed Changes fully satisfy issue #694 requirements: timeout bumped at both sites (lines 160 and 1736), explanatory comment added, KNOWN_ISSUES.md entry removed, and CHANGELOG.md updated.
Out of Scope Changes check ✅ Passed All changes are tightly scoped to issue #694: three files modified, each edit directly addresses the timeout flake without unrelated alterations.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/694-windows-node-timeout

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Actionable comments posted: 0

@aallan aallan merged commit ce9875c into main May 28, 2026
26 checks passed
@aallan aallan deleted the fix/694-windows-node-timeout branch May 28, 2026 12:48
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.

Bump test_browser.py Node subprocess timeout from 30s to 60s to reduce Windows CI flakes

1 participant