Repository navigation
Conversation
create_dir() walks the path from the start and gave up at the first component it could neither find nor create. For a UNC path such as \\server\share\logs, or a verbatim path such as \\?\C:\logs, the first components are "\\server" and "\\?", which never exist as directories, so the log directory was never created and opening the log file failed. Keep going past such components and let the last directory decide the result. Real failures still return false, since the directories below a failed one cannot be created either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
create_dir()gave up at the first path component it could neither find nor create. For a UNC path like\\server\share\logs, or a verbatim path like\\?\C:\logs/\\?\UNC\server\share\logs, the first components are\\serverand\\?, which never exist as directories, so a missing log directory under them was never created and opening the log file failed.Now a failure only counts for the last directory: the loop keeps going past such components and returns whether the full path could be found or created. Real failures still return false, since nothing below a failed directory can be created either. The EEXIST case from #3625 is kept.
Added a Windows test that creates a nested directory through a
\\?\path (UNC paths behave the same, but need a share to test against).