contenthash: unconditionally clear ModeIrregular during content hash #6025
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.
Go 1.23 changed the behavior of
os.Stat
to setModeIrregular
when itencountered a mount point reparse point on Windows. These were
previously labeled as symlinks.
We attempted to fix this by clearing
ModeIrregular
during checksumgeneration, but we only cleared it in the case where
ModeIrregular
andat least one other mode type was set.
After reviewing the original solution and issue, I believe that this was
too conservative. The original issue seems to indicate that only the
ModeIrregular
bit was set so the condition would not have triggeredand cleared it properly. I thought mount points would have both
ModeDir
andModeIrregular
set, but they only seem to haveModeIrregular
set.This unconditionally clears the bit similar to socket files which should
properly fix the issue on Windows.
Fixes docker/for-win#14083.
Related to #5665.