Skip to content

release: 5.10.8 - #1967

Merged
Jaro-c merged 2 commits into
mainfrom
develop
Sep 29, 2026
Merged

Jaro-c merged 2 commits into
mainfrom
develop

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Sep 29, 2026

Copy link
Copy Markdown
Member

Release 5.10.8: no change to how podup behaves. The benchmark harness now fails a down row when the tool exited 0 but left containers, pods or networks of its project behind, and removes them before the next row (#1947, #1965). The published scale down comparison had podman-compose 1.6.0 leaving four of five replicas running; the benchmark will be re-run on this release.

Closes #1947

## Summary

- The benchmark's `scale` / `down` row was not a like-for-like
comparison (#1947). After `up -d --scale app=5`, podman-compose 1.6.0's
`down -v` exits 0 in about 0.38 s but only stops and removes `app_1`:
`app_2` to `app_5`, the pod `pod_<proj>` and the network
`<proj>_default` stay behind. podup removes all five and the network in
about 0.26 s on the same host. The 5.10.5 table therefore showed podup
losing a row it actually wins, and the leftovers stayed on the host and
slowed the rows measured after them.
- After every timed `down`, the harness now checks the engine for
containers, pods and networks of the project. A tool that exited 0 but
left something behind gets that row recorded with rc 97, which the
aggregator already excludes from the statistics and reports as `[F
failed of N]`; the leftovers are force-removed so the next row starts
clean.

## Changes

- `bench/leftovers.sh` (new, sourced by `run.sh`): detection by each
tool's compose project label, verified on real resources
(`podup.project`, `io.podman.compose.project`,
`com.docker.compose.project`), plus an exact-name match for
podman-compose's unlabelled `pod_<proj>`. Engine queries go to the same
Podman socket and Docker host the measured tools use. A failing engine
query is reported, never read as "clean"; a purge is re-checked and
anything still there is printed.
- `bench/run.sh`: `record_down` wraps the timed `down` of the `updown`
and `scale` ops; a non-zero tool rc is kept, only a zero rc with
leftovers becomes 97. `teardown` checks and cleans between scenarios and
says so on stderr.
- `bench/aggregate.py`: a legend line under the tables and a `_notes`
entry in `summary.json` whenever rc 97 rows exist; the self-test
fixtures include two such rows and assert the legend.
- `tests/shell/bench-leftovers.test.sh` (new, wired into
`lint-shell.yml`): stub `podman`/`docker` that reject the invalid
`{{.Names}}` field on `pod ls`/`network ls` like the real CLIs and log
every removal call.

## Test plan

- [x] `bash tests/shell/bench-leftovers.test.sh`: 28 passed
- [x] `bash tests/shell/ci-runs-every-test.test.sh`,
`check-planning-words`, and shellcheck at `--severity=style` over every
tracked shell file: clean
- [x] `python3 bench/aggregate.py --self-test`: ok
- [x] Sabotage: putting `{{.Names}}` back, dropping the label filter,
and rewriting every leftover rc to 97 each made a named case fail
- [x] Full run on Podman 5.7.0 (`bench/run.sh --iters 1 --warmup 0
--engines podman --allow-dynamic`): only podman-compose `scale` `down`
was flagged (rc 97, with the pod, the four containers and the network in
the warning); podup and docker-compose-podman were clean in every
scenario, including `network-ipam`'s custom network; no `bench_`
resources left afterwards
- [x] By hand: a podman-compose `--scale 5` project torn down with `down
-v`, then `bench_check_leftovers` reported `pod_… app_2 … app_5
…_default`, returned 97 and left nothing behind
- [ ] Podman lane (not affected: no Rust change)

## Checklist

- [x] Targets `develop`
- [x] Commits are signed off and signed
- [x] Labels applied
- [x] Every new file in `tests/shell/` is named in a workflow's
`test-command`
- [x] No secrets, keys or credentials

## Related issues

Fixes #1947 once the release pull request merges into `main`. The
published benchmark numbers need a fresh run with this harness; I will
do that separately.

---------

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
Bumps `Cargo.toml`, `Cargo.lock` and `debian/changelog` to 5.10.8
together.

Patch release carrying #1965 (#1947): the benchmark harness fails a
`down` row that left the project's resources behind. No change to the
podup binary's behaviour.

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c Jaro-c added prio:P2 Medium priority effort:XS Extra small type:chore Maintenance with no product impact release area:release Subsystem: release labels Sep 29, 2026
@Jaro-c
Jaro-c merged commit 8561341 into main Sep 29, 2026
83 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:release Subsystem: release effort:XS Extra small prio:P2 Medium priority release type:chore Maintenance with no product impact

Development

Successfully merging this pull request may close these issues.

scale down is slower than podman-compose on the same Podman (0.69 s vs 0.42 s)

1 participant