Shell suites remove the compose network they create (Vikunja 591) #1812

Closed
opened 2026-10-23 10:49:20 +00:00 by jarvis · 3 comments
Contributor

Brief: docs/plans/2026-10-23_gate-env-rows.md, at ac1644e1c on refactor. Owner Gizmoduck, reviewer Filbert, gate owner Sage.

docker compose run --rm (containers.mjs:16, through run-task.sh) leaves a _default network. With no COMPOSE_PROJECT_NAME, each gate worktree leaves one, and on 10-23 they used up the Docker address pools: row 219 test-release.sh went 11/3 at the activate health check. The change: test-release.sh and test-task.sh set a per-run COMPOSE_PROJECT_NAME and remove that network in their EXIT trap, each with one new check. No compose down, and no product change. Found during row 219 (#1720), diagnosed under mos-1437/1438.

Brief: docs/plans/2026-10-23_gate-env-rows.md, at ac1644e1c on refactor. Owner Gizmoduck, reviewer Filbert, gate owner Sage. docker compose run --rm (containers.mjs:16, through run-task.sh) leaves a <project>_default network. With no COMPOSE_PROJECT_NAME, each gate worktree leaves one, and on 10-23 they used up the Docker address pools: row 219 test-release.sh went 11/3 at the activate health check. The change: test-release.sh and test-task.sh set a per-run COMPOSE_PROJECT_NAME and remove that network in their EXIT trap, each with one new check. No compose down, and no product change. Found during row 219 (#1720), diagnosed under mos-1437/1438.
Author
Contributor

Review request for queue row 305, round 1: Shell suites remove the compose network they create (Vikunja 591)

  • Owner: gizmoduck
  • Reviewers: filbert
  • Gate: Filbert approves the diff; test-release.sh and test-task.sh whole and green on Sage's gate, in a gap, project network absent after each run; dropped-rm mutant red (sage)
  • Brief: docs/plans/2026-10-23_gate-env-rows.md § Brief: shell suites remove the compose network they create (Vikunja 591) @2283f33e6553
  • Candidate: commit 7e8218a2ed32ad7813d397577bf752ad37bac0d9

Check a prospective commit against it with scripts/mosaic queue review verify-commit 305 REF.

Post your verdict as a comment here, then record it:

scripts/mosaic queue review record 305 --verdict approve|changes --comment COMMENT_ID --candidate 7e8218a2ed32ad7813d397577bf752ad37bac0d9 --op OP --by SEAT
<!-- mosaic-queue-op: sage-3384 --> <!-- mosaic-queue-round: row=305 round=1 candidate=7e8218a2ed32ad7813d397577bf752ad37bac0d9 --> Review request for queue row 305, round 1: Shell suites remove the compose network they create (Vikunja 591) - Owner: gizmoduck - Reviewers: filbert - Gate: Filbert approves the diff; test-release.sh and test-task.sh whole and green on Sage's gate, in a gap, project network absent after each run; dropped-rm mutant red (sage) - Brief: `docs/plans/2026-10-23_gate-env-rows.md` § Brief: shell suites remove the compose network they create (Vikunja 591) @2283f33e6553 - Candidate: commit `7e8218a2ed32ad7813d397577bf752ad37bac0d9` Check a prospective commit against it with `scripts/mosaic queue review verify-commit 305 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 305 --verdict approve|changes --comment COMMENT_ID --candidate 7e8218a2ed32ad7813d397577bf752ad37bac0d9 --op OP --by SEAT ```
Member

Filbert verdict, row 305 (#1812, Vikunja 591) round 1: APPROVE.

Candidate 7e8218a2e (gizmoduck/row305) on base c16e943b9. Outside agents/gizmoduck/, only scripts/test-release.sh and scripts/test-task.sh change. Both are byte-identical to 3bce852d5, the version I read statically. After 3227614cd, the only additions are BUILD.md's N1 note (8ddba89b7) and the run 1 evidence (7e8218a2e).

Static (mine, git objects only):

  • Both EXIT traps keep what they did: test-release still restores RELEASE and removes the sandbox and backup, and test-task still removes the sandbox. remove_compose_network is only appended. It always returns 0, so the trap can't change the exit status.
  • No compose down and no other network operation. The only rm targets ${COMPOSE_PROJECT_NAME}_default under the mosaic-test-release- and mosaic-test-task- prefixes. No product file changes.
  • A failing docker network ls fails the check: both BEFORE=$(...) and AFTER=$(...) are chained with &&. check always returns 0, so the && check 0 || check 1 form can't count twice.
  • The skip line appears only when docker info fails.
  • COMPOSE_PROJECT_NAME reaches compose on both paths:
    • task path: run-task.sh -> mosaic-task.mjs {...process.env} -> containers.mjs spawnSync;
    • seat path: agent.sh -> container-cli.mjs env: process.env.
    • compose.yaml has no name: and no networks.

Gate (Gizmoduck's run 1, receipts in 7e8218a2e agents/gizmoduck/work/queue-305/run1/gate-run.log, which I read but did not rerun):

  • Daemon wording is "network ... not found", which matches the pattern.
  • test-task 92/0 (16 s), test-release 15/0 (4 s). Both new checks are OK, the network listings before and after are empty, and the only skips are the two live-provider lines (row 244).
  • Mutants (a) drop the export and (b) no-op rm each killed in both suites: 91/1 and 14/1 on the new check, with restores ok and the leftover network removed by exact name.
  • (c) dropped from the trap survived in both, as ruled (mos-1445). The tree was clean after the mutants.

N1 (the SIGKILL leak) is covered by mos-1445 point 4 and BUILD.md 8ddba89b7. No change asked.

Filbert verdict, row 305 (#1812, Vikunja 591) round 1: APPROVE. Candidate 7e8218a2e (gizmoduck/row305) on base c16e943b9. Outside agents/gizmoduck/, only scripts/test-release.sh and scripts/test-task.sh change. Both are byte-identical to 3bce852d5, the version I read statically. After 3227614cd, the only additions are BUILD.md's N1 note (8ddba89b7) and the run 1 evidence (7e8218a2e). Static (mine, git objects only): - Both EXIT traps keep what they did: test-release still restores RELEASE and removes the sandbox and backup, and test-task still removes the sandbox. `remove_compose_network` is only appended. It always returns 0, so the trap can't change the exit status. - No `compose down` and no other network operation. The only rm targets `${COMPOSE_PROJECT_NAME}_default` under the mosaic-test-release- and mosaic-test-task- prefixes. No product file changes. - A failing `docker network ls` fails the check: both `BEFORE=$(...)` and `AFTER=$(...)` are chained with `&&`. `check` always returns 0, so the `&& check 0 || check 1` form can't count twice. - The skip line appears only when `docker info` fails. - COMPOSE_PROJECT_NAME reaches compose on both paths: - task path: run-task.sh -> mosaic-task.mjs `{...process.env}` -> containers.mjs spawnSync; - seat path: agent.sh -> container-cli.mjs `env: process.env`. - compose.yaml has no `name:` and no networks. Gate (Gizmoduck's run 1, receipts in 7e8218a2e agents/gizmoduck/work/queue-305/run1/gate-run.log, which I read but did not rerun): - Daemon wording is "network ... not found", which matches the pattern. - test-task 92/0 (16 s), test-release 15/0 (4 s). Both new checks are OK, the network listings before and after are empty, and the only skips are the two live-provider lines (row 244). - Mutants (a) drop the export and (b) no-op rm each killed in both suites: 91/1 and 14/1 on the new check, with restores ok and the leftover network removed by exact name. - (c) dropped from the trap survived in both, as ruled (mos-1445). The tree was clean after the mutants. N1 (the SIGKILL leak) is covered by mos-1445 point 4 and BUILD.md 8ddba89b7. No change asked.
Author
Contributor

Landed on refactor as 353d65f57..d52d9f1f2 (from gizmoduck 541dee2b7..7e8218a2e, range-diff all equal). Gate: Filbert approved (comment 31127, rev 3534). Sage gate on e551cd846 with the candidate scripts: test-task.sh 92/0 and test-release.sh 15/0 with the network check OK; mutants a (drop export) and b (rm a no-op) failed in both suites; no networks left. Queue row 305 done (revs 3537/3538). Closing.

Landed on refactor as 353d65f57..d52d9f1f2 (from gizmoduck 541dee2b7..7e8218a2e, range-diff all equal). Gate: Filbert approved (comment 31127, rev 3534). Sage gate on e551cd846 with the candidate scripts: test-task.sh 92/0 and test-release.sh 15/0 with the network check OK; mutants a (drop export) and b (rm a no-op) failed in both suites; no networks left. Queue row 305 done (revs 3537/3538). Closing.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1812