-
Notifications
You must be signed in to change notification settings - Fork 4.3k
[7.7.0] Invalidate subtrees when a directory is deleted #27109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
|
@lberki Could you please take a look at the presubmit failures? Thanks! |
|
@iancha1992 Could you apply this diff? |
fmeum
reviewed
Oct 9, 2025
...in/java/com/google/devtools/build/lib/skyframe/FileSystemValueCheckerInferringAncestors.java
Outdated
Show resolved
Hide resolved
lberki
approved these changes
Oct 13, 2025
github-merge-queue bot
pushed a commit
that referenced
this pull request
Oct 13, 2025
`FileSystemValueCheckerInferringAncestors` claims that it is resilient to diffs which only report the root of a deleted subtree, but this wasn't true. Stale `FileStateValue`s and `DirectoryListingStateValue`s could linger around after moving an entire directory tree out of the workspace watched with `--watchfs`. This is fixed by invalidating all FSVs and DLSVs under any deleted directory. Since these values and their keys do not depend on their parents, this requires a manual walk of the entire graph, making use of a prefix-free sorted map to speed up lookups per key. Fixes #26863 Fixes #26866 Closes #26920. PiperOrigin-RevId: 812740160 Change-Id: Id55329b5ffd3cf3e109ec102e86b6fb46335531b Commit 8df327a --------- Co-authored-by: Fabian Meumertzheim <[email protected]> Co-authored-by: Ian (Hee) Cha <[email protected]>
`FileSystemValueCheckerInferringAncestors` claims that it is resilient to diffs which only report the root of a deleted subtree, but this wasn't true. Stale `FileStateValue`s and `DirectoryListingStateValue`s could linger around after moving an entire directory tree out of the workspace watched with `--watchfs`. This is fixed by invalidating all FSVs and DLSVs under any deleted directory. Since these values and their keys do not depend on their parents, this requires a manual walk of the entire graph, making use of a prefix-free sorted map to speed up lookups per key. Fixes bazelbuild#26863 Fixes bazelbuild#26866 Closes bazelbuild#26920. PiperOrigin-RevId: 812740160 Change-Id: Id55329b5ffd3cf3e109ec102e86b6fb46335531b
…mValueCheckerInferringAncestors.java Co-authored-by: Fabian Meumertzheim <[email protected]>
dc63877 to
f583fb6
Compare
Merged
via the queue into
bazelbuild:release-7.7.0
with commit Oct 17, 2025
f4f39f0
50 checks passed
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.
FileSystemValueCheckerInferringAncestorsclaims that it is resilient to diffs which only report the root of a deleted subtree, but this wasn't true. StaleFileStateValues andDirectoryListingStateValues could linger around after moving an entire directory tree out of the workspace watched with--watchfs.This is fixed by invalidating all FSVs and DLSVs under any deleted directory. Since these values and their keys do not depend on their parents, this requires a manual walk of the entire graph, making use of a prefix-free sorted map to speed up lookups per key.
Fixes #26863
Fixes #26866
Closes #26920.
PiperOrigin-RevId: 812740160
Change-Id: Id55329b5ffd3cf3e109ec102e86b6fb46335531b
Commit 8df327a