Hi,
We got a report in syncthing that some files fail to sync on an ntfs filesystem with deduplication enabled after upgrading the app:
https://github.com/syncthing/syncthing/issues/9120The only change relevant to filesystem handling there was going from go1.20 to go1.21. Debug logging shows that `IsRegular` returns false on `LStat` result of this file, while this is a regular (though possibly deduplicated) file so should be true and was true before.
This change in go 1.21 seems like it's related, as it deals with reparse points:
https://github.com/golang/go/commit/3e44b7d07a7b3c6233eb1bf4cf3cb00a0b85adecAnd so does ntfs deduplication according to this doc:
https://learn.microsoft.com/en-us/windows-server/storage/data-deduplication/understandNow my question is if this was an intentional change, or if this is a regression and should be filed as a bug. The commit message suggest it might more likely be a regression, as it seems focused on performance and mentions symlinks being rare, so I doubt ntfs deduplication was on the radar.
Any comments about this, specifically if you feel like this might be a regression/should be filed as a bug. I haven't tried to repro, don't have a windows ntfs setup handy, but the issue seems clear enough to start reason about it.
Cheers,
Simon