Skip to content

test: fix two merge-queue flakes in Render and the VS Code extension - #2614

Merged
jeremi merged 2 commits into
mainfrom
fix/ci-flakes-render-vscode
Nov 9, 2026
Merged

jeremi merged 2 commits into
mainfrom
fix/ci-flakes-render-vscode

Conversation

@jeremi

@jeremi jeremi commented Nov 8, 2026

Copy link
Copy Markdown
Member

Summary

Two integration tests failed at random in the merge queue while the v0.46.0 release PR was queued. Each passed in the PR's own CI run and failed once in the queue. Both causes are in the tests, not in the products.

  • Render worker stand-in. framing_stand_in wrote a shell worker that printed its answer and exited without reading the request. When it exited before the parent wrote, the write failed with a broken pipe (render worker failed: Broken pipe (os error 32)) instead of reaching the frame assertion. The stand-in now reads the length-prefixed request before answering, as a real worker does. A worker that exits without reading its request still fails with a broken pipe, which is the intended product behavior.
  • VS Code reload assertion. The test overwrote registry.yaml outside the editor and then expected the new workspace symbol (workspace symbol alpha-reloaded was not provided). That change reaches the language server only through a VS Code watcher event, which Linux runners occasionally drop; the three CI failures on record each used the whole 5 s wait, so a longer timeout would not help. The test now rewrites the file until the extension host reports it, and fails with a distinct message if no event arrives, so a missing symbol means a delivered change was not indexed.
  • VS Code workspace save race (found while reproducing). updateWorkspaceFolders(3, 3) returned before VS Code saved the workspace file, and the workspace-scoped configuration update that follows was refused while that file was dirty. It now awaits the existing changeWorkspaceFolders helper.

Verification

  • Render: with a 100 ms delay temporarily injected before the request write, the previous stand-in reproduced the CI error and the fixed one passed all worker::tests. Unforced stress loops did not reproduce on macOS (0 of 1480 before, 0 of 400 after). cargo test --locked -p registry-render --lib (172 passed), clippy with -D warnings, and cargo fmt --check are clean.
  • VS Code: npm run check, npm run test:unit (57 passed), and the integration suite passed 30 of 30 runs, plus 10 of 10 with every CPU busy. Before the fix the workspace save race failed 1 of 10 local runs. The dropped watcher event did not reproduce on macOS, so that cause is inferred from the CI timings and the code path, not observed.

A stand-in that answered and exited before the parent wrote its request made the write fail with a broken pipe, so the frame assertions failed at random in CI. The stand-in now consumes the length-prefixed request first, as a real worker does.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
…s on

An edit made outside the editor reaches the language server only through a VS Code watcher event, which Linux runners occasionally drop. The test now rewrites the file until the extension host reports it, so a missing symbol means a delivered change was not indexed. A workspace configuration update also waits for the folder change to be saved, since VS Code refuses it while the workspace file is dirty.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-08T17:03:36.617125Z 3f78be2 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.

@jeremi
jeremi added this pull request to the merge queue Nov 9, 2026
Merged via the queue into main with commit 7a331c3 Nov 9, 2026
60 checks passed
@jeremi
jeremi deleted the fix/ci-flakes-render-vscode branch November 9, 2026 03:17
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