actiondfs: preserve directory iteration while deleting staged entries - #39
Open
zbarsky-openai wants to merge 1 commit into
Open
zbarsky-openai wants to merge 1 commit into
zbarsky-openai wants to merge 1 commit into
Conversation
Deleting staged directory entries while iterating across multiple `getdents` buffers currently fails with: ```text rm: can't remove 'bazel-out/darwin_arm64-fastbuild/bin/external/+local_repository+actiond_readdir_probe/actiond-staged-readdir-deletion': Directory not empty ``` Each deletion increments the staged directory generation. Reopening an active backing directory after that change restarts ext4 iteration from the beginning, then applies the old logical offset to a smaller directory and skips surviving entries. Preserve an active backing-directory cursor across generation changes; retain the existing reopen behavior once iteration has reached EOF. Extend the existing filesystem E2E action with 1,536 staged entries deleted through a single live iterator. A full ARM64 guest-kernel build completed via actiond (3,599 actions, 961 remotely executed), and the exact previously failing 1,536-entry Bazel reproduction now succeeds remotely with the rebuilt kernel.
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.
Deleting staged directory entries while iterating across multiple
getdentsbuffers currently fails with:Each deletion increments the staged directory generation. Reopening an active
backing directory after that change restarts ext4 iteration from the beginning,
then applies the old logical offset to a smaller directory and skips surviving
entries. Preserve an active backing-directory cursor across generation changes;
retain the existing reopen behavior once iteration has reached EOF.
Extend the existing filesystem E2E action with 1,536 staged entries deleted
through a single live iterator. A full ARM64 guest-kernel build completed via
actiond (3,599 actions, 961 remotely executed), and the exact previously failing
1,536-entry Bazel reproduction now succeeds remotely with the rebuilt kernel.