← Jobs
failure

test ant/term ↗

main @ 05f5c71f0a16ee54ff2e90f3dca62781cdf436df · pipeline test #37 → · 2 more pipelines from this commit →
started 17 Sep 2026 11:08 UTC · ran for
10s, success 9s, success 10s, success 10s, success 12s, success 13s, success 13s, success 12s, success 12s, success 12s, success avg 11s ± 1s over the last 10 runs
fix: headless entrypoint needs sway/grim, and must reap sway by real pid Two blockers once XDG_RUNTIME_DIR (ci-tron's own fix) let the headless smoke test actually start: - flake.nix's devShell already bundled wlrctl/wl-clipboard for this exact test but never sway or grim themselves — scripts/headless_test.py needs both, and had no way to get them on a host that doesn't happen to have a desktop environment already providing them system-wide (a bare CI box, for instance). - On a host with no logind session for this seat — nothing registers one for ci-tron-runner's sudo session, same root cause as the XDG_RUNTIME_DIR fix — sway double-forks and detaches, reparenting to init. start_sway's own Popen then tracks a pid that's already exited, not the real compositor: find_sway_ipc_socket was matching the IPC socket by that stale pid (so it could never find sway's real one) and the process a broken run's `finally` tried to terminate() wasn't the real compositor either, leaking sway/swaybar/swaybg past every run — confirmed by hand (orphaned sway processes still running from a reproduction). Recovers the real pid from the IPC socket's own name instead ("sway-ipc.<uid>.<pid>.sock" — authoritative, unlike the Popen handle), and reaps it with a plain kill(2)/proc-poll loop since it's not our child (waitpid(2) can't see it). Verified end-to-end as ci-tron-runner itself on the ci-tron host, including confirming no leaked processes across repeated runs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KpDBFeBQKx9f5U3pfVeVV3
$ test failure · exit 1 · raw
++ mktemp -d
+ checkout=/tmp/tmp.cGbqTWg72A
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/6cb1380c8b4ea757/. /tmp/tmp.cGbqTWg72A
+ cd /tmp/tmp.cGbqTWg72A
+ nix develop --command odin test . -all-packages
GC Warning: Could not open /proc/stat
[INFO ] --- [2026-09-17 11:09:00] Starting test runner with 12 threads. Set with -define:ODIN_TEST_THREADS=n.
[INFO ] --- [2026-09-17 11:09:00] The random seed sent to every test is: 834463600812792. Set with -define:ODIN_TEST_RANDOM_SEED=n.
[INFO ] --- [2026-09-17 11:09:00] Memory tracking is enabled. Tests will log their memory usage if there's an issue.
[INFO ] --- [2026-09-17 11:09:00] < Final Mem/ Total Mem> < Peak Mem> (#Free/Alloc) :: [package.test_name]
term: --class requires an argument
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: -e requires a command
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: --working-directory requires an argument
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: unknown flag "--bogus"
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
[ERROR] --- [2026-09-17 11:09:09] [e2e_tmux_test.odin:33:test_e2e_tmux_secondary_da_no_corruption()] expected e2e_pump_until(&e, "$ ") to be true
[ERROR] --- [2026-09-17 11:09:09] [e2e_tmux_test.odin:34:test_e2e_tmux_secondary_da_no_corruption()] expected e.grid.in_alt to be true, got false
[ERROR] --- [2026-09-17 11:09:09] [e2e_tmux_test.odin:37:test_e2e_tmux_secondary_da_no_corruption()] expected e2e_pump_until(&e, "\x1b[?1049l") to be true
[ERROR] --- [2026-09-17 11:09:09] [e2e_tmux_test.odin:50:test_e2e_tmux_secondary_da_no_corruption()] expected vt.at(&e.grid, 0, before_y)^.ch to be [, got s
Finished 254 tests in 8.58401442s. 1 test failed.
- main.test_e2e_tmux_secondary_da_no_corruption expected vt.at(&e.grid, 0, before_y)^.ch to be [, got s
To run only the failed test, use:
-define:ODIN_TEST_NAMES=main.test_e2e_tmux_secondary_da_no_corruption,
If your terminal supports OSC 52, you may use -define:ODIN_TEST_CLIPBOARD to have this copied directly to your clipboard.
+ rm -rf /tmp/tmp.cGbqTWg72A
Artifacts

no artifacts