ci-fix: macOS shell wrapper interrupt test intermittently returns 130

Open
#4,610 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
bash, github-actions, macos, python, rust
Domain
ci-cd, cli, testing

Research direction

Start with tests/integration_tests/foreground_jobs.rs around line 1302 and inspect the interrupted_shell_wrapper_applies_directive_and_cleans_up::case_2 setup and assertions. Compare the failed and passing CI runs, then determine how to capture shell output and wt's exit status on macOS. Done means a recurrence identifies whether wt or the interactive shell produced status 130 and the test failure can be diagnosed.

Written by the indexing model from the issue text.

Description

The affected coverage run on main failed on macOS in foreground_jobs::interrupted_shell_wrapper_applies_directive_and_cleans_up::case_2 at commit 882e7be5747701f751a0c22c912d60daf94b5286. The test sends Ctrl-C to a foreground Python worker and expects the wrapper command's saved status to be 0; wrapper-caught-status contained 130 at foreground_jobs.rs:1302. The test reached its WRAPPER_CAUGHT marker, so the shell continued after the command. The rerun passed both previously failed coverage jobs.

The failure log has no captured terminal output or wt exit status. It cannot distinguish wt returning 130 from the interactive shell setting that status while handling Ctrl-C. The commit changes directive file reading in fish, Nushell, and PowerShell, plus wt's existence check; this case uses bash. The preceding affected run passed. The evidence points to an intermittent failure, without identifying its cause.

No safe code fix is established. A recurrence needs the shell output and wt exit status to identify the failing path. This issue tracks the macOS wrapper case separately from the recurring Linux final-alias test in #4603, for which #4607 is already open. #4609 addresses a possible pending signal receipt race, but this log does not show whether that mechanism occurred here.

Dominant language
Rust
Stars
8.8k
Forks
315
Avg merge
1d 6h
Merged PRs (30d)
204

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from max-sixty/worktrunk

All issues in max-sixty/worktrunk

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.