Fix unprovoked symlink errors in directory_entry - #353
Draft
stm-ableton wants to merge 1 commit into
Draft
Conversation
Since boostorg@d508d49, a number of functions in directory_entry's public interface call directory_entry::refresh_impl, which updates the cached file status comprehensively. On POSIX systems, for example, both lstat and stat are called for symlinks, and stat errors are reported to the caller. As a result, e.g. checking the status of a symlink with symlink_status produces an error if the symlink target is gone or if access to it is denied. In v4, this also affects the constructor overload that takes an error_code, i.e. constructing a directory_entry with a path to a broken symlink produces an error. Add a parameter to refresh_impl allowing to configure what the caller is interested in, thus avoiding false positives. A note on the tests: we are missing some error code assertions, notably in the directory_entry_tests block that tests the missing file case and after some of the non-symlink status accessor calls in the dangling symlink block in directory_entry_symlink_tests. The reason is an unrelated issue that causes these functions to not report error for non-existing files when reading from the cache. Due to the structure of the tests, this is the case for many of these calls, and in v4, this would always be the case after construction, since the constructors write to the cache. This issue should be addressed separately.
stm-ableton
marked this pull request as draft
August 3, 2026 09:53
stm-ableton
marked this pull request as ready for review
August 3, 2026 12:27
Member
|
I'd like to let you know that there is a massive change to library headers coming soon, that will likely make PRs against headers non-applicable. You may want to hold off the work on this. |
stm-ableton
marked this pull request as draft
August 3, 2026 14:59
Author
|
@Lastique Thank you for the heads up. I've converted to draft for now. |
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.
Closes #352.
Also adds tests exercising
directory_entry.