Skip to content

test(ftwdb): match the live sidecar I/O budget - #1119

Merged
frahlg merged 1 commit into
masterfrom
fix/ftwdb-ci-budget
Sep 7, 2026
Merged

test(ftwdb): match the live sidecar I/O budget#1119
frahlg merged 1 commit into
masterfrom
fix/ftwdb-ci-budget

Conversation

@frahlg

@frahlg frahlg commented Sep 7, 2026

Copy link
Copy Markdown
Member

The FTWDB contract job on #1118 failed before the idle period: its first commit exceeded the test helper's 100 ms I/O deadline, then recovered, leaving Errors=1. Core allows two seconds for the same operation.

Use Core's existing two-second I/O budget in runTestBeta. Keep the faster polling interval and every assertion, including zero errors before and after idle. This changes test setup only.

Validation against pinned FTWDB 7bbae63532f695b10aca548bf4ee58c6d7ebb3a8, built in debug mode as CI does:

  • Delaying the first real Rust commit reply by 250 ms reproduces the first-batch timeout before this patch. With the patch, five runs of the same test pass under -race without relaxing the error count.
  • A negative control that reuses the connection across idle still fails at the post-idle assertion. The test continues to detect the connection regression.
  • The full pinned Go/Rust contract gate passes with -race; make verify passes.

The injected delay models a short scheduling or I/O pause; it does not establish the source of the original runner's delay. The 3.0.3 box timeout used the real two-second budget and remains a separate observation.

No release entry is needed for this test-only change.


Note

Low Risk
Test setup only; no production or runtime behavior changes.

Overview
Test-only fix for flaky FTWDB shadow contract tests: runTestBeta now uses the same 2s IOTimeout as production Beta startup instead of 100ms, so the first real Rust commit/fsync can finish under CI scheduling without a spurious Errors=1.

The 20ms polling interval and all assertions (including zero errors before/after idle) are unchanged; comments document that only the I/O budget was widened, not failure detection.

Reviewed by Cursor Bugbot for commit 9bf9300. Bugbot is set up for automated code reviews on this repo. Configure here.

@frahlg frahlg added the no-changeset PR intentionally exempt from the changeset requirement (dev tooling / non-shipping) label Sep 7, 2026
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_f2be3fad-1a7c-4587-9b9a-94f5ec6982e8)

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-07T20:48:11.428988Z 9bf9300 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@frahlg
frahlg merged commit c15d988 into master Sep 7, 2026
15 of 16 checks passed

@miravoss26 miravoss26 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed. One-line test-only fix: runTestBeta now uses the same 2s IOTimeout as production Beta startup instead of a 100ms test-only budget, which was the actual cause of the #1118 flake (first real Rust commit/fsync exceeding the tight deadline under CI scheduling). Polling interval and every assertion (including zero-errors before/after idle) are unchanged, so the test still catches a real connection regression — the description's negative control confirms that directly.

No security surface (test-only, no network/secrets/auth touched). Small, targeted diff, description backs the change with reproduction + -race validation.

Safe to merge from my read.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changeset PR intentionally exempt from the changeset requirement (dev tooling / non-shipping)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants