AR03.3: docker volume rm undo via inline-bytes tar#45
Merged
Conversation
…ybox tar (AR03.3)
…finds real binary The previous guard used 'command -v -- docker | grep -v wrapper-dir | head -n1' which only returned the FIRST PATH match (the wrapper itself), then filtered it out leaving nothing. AR03.2's docker save tolerated this because the helper didn't set SHIT_DURING_UNDO; AR03.3's volume capture does, exposing the bug. Switch to the same PATH-stripping pattern the non-undo branch already uses.
espadonne
added a commit
that referenced
this pull request
May 24, 2026
…dman pre The podman wrapper had only the recursion guard fix from PR #45 (AR03.3) but never received the helper-invocation block that the docker wrapper got in PR #43. Result: podman commands routed through the wrapper but the helper was never called, so no ContainerOp event ever reached the daemon. AR03.5's smoke timed out waiting for the journal entry. Port the block from the docker wrapper verbatim (only s/docker/podman/); the classifier handles the cross-runtime delegation server-side.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docker run --rm -v <vol>:/src:ro busybox tar -C /src -czf - .to gzip-tar the volume contents, blake3-hashes, ships inline viaencode_frame_large. Daemon ingests + journals via the existingcontainer_track::handleVolumeRm arm (no daemon-side changes needed — already wired in PR AR03.2: docker rmi undo via inline-bytes stash (DR-CR-26 PR-B) #43).ContainerExecutor::apply_volume_rm):docker volume create→docker run --rm -i ... busybox tar -xzf -with the captured bytes on stdin.docker volume inspect --format='{{.Driver}}'records non-default drivers inextrasso the recreate honors them.Scope
docker volume rm <vol>full round-trip with inline tarball capture.docker volume rm v1 v2 v3ships one event per invocation, volume[0] only); podman volume rm (no podman on hosted runners — AR03.5 territory).Test plan
cargo build --workspace --releasegreencargo fmt --all -- --checkcleancargo clippy --workspace --all-targets --all-features -- -D warningscleancargo test -p shit-helper --bin shit-helper container::event— 5 tests passdr-smoke / docker-volume-rm-undojob green on this PR (validates full round-trip + byte-identity)docker-rmi-undo(AR03.2 stays green)linux-kernel-capturematrix stays green