Skip to content

Issue 2081 / path_to_filesystem#2087

Merged
pbiering merged 12 commits into
Kozea:masterfrom
pbiering:issue-2081
Apr 15, 2026
Merged

Issue 2081 / path_to_filesystem#2087
pbiering merged 12 commits into
Kozea:masterfrom
pbiering:issue-2081

Conversation

@pbiering
Copy link
Copy Markdown
Collaborator

@pbiering pbiering commented Apr 14, 2026

  • Fix: broken storage/mtime granularity detection on vfat
  • Improve: path_to_filesystem() by pre-detection of collision-free file system
  • Adjustment: MKCOL/MKCALENDAR return now CONFLICT instead of BADREQUEST of file name collision

Relates to

@pbiering pbiering added this to the 3.7.2 milestone Apr 14, 2026
@pbiering pbiering self-assigned this Apr 14, 2026
@pbiering pbiering added cleanup/code quality cleanup or code quality fixes adjustment adjustment of option/code/feature labels Apr 14, 2026
@pbiering
Copy link
Copy Markdown
Collaborator Author

@flesueur - I've extended test cases and found that your implementation is also breaking softlinks supported on Windows with same issue found originally on Linux during PROPFIND request, see e.g. this particular workflow run: https://github.com/Kozea/Radicale/actions/runs/24395680534/job/71253826211#step:5:731

Having your change from #2002 reverted by 94746cf it is working again and passing the test on Windows https://github.com/Kozea/Radicale/actions/runs/24409725117

Can you please investigate further on, if there is no proper solution then the performance impact would be only on filesystems detected during startup as not collision-free.

@pbiering pbiering merged commit 8398ea9 into Kozea:master Apr 15, 2026
31 checks passed
@flesueur
Copy link
Copy Markdown
Contributor

Sorry it was much more complex than what I expected ! I guess this part is still WIP but, anyway, I did not find any other way to solve it.
As soon as we use realpath() symlinks are problematic on every OS and surprisingly, there does not seem to be a realpath() alternative suited to this need. Anyway, could not find such a workaround.

Even going back to the original motivation I don't spontaneously find another good alternative :( .

Thanks !

@pbiering
Copy link
Copy Markdown
Collaborator Author

Sorry it was much more complex than what I expected ! I guess this part is still WIP

I think there is no other way then predetecting and making it faster by skip on unproblematic file system while keeping the old code for others.

If you agree the block below can be removed again, anyhow forced to be not active at the moment:

if sys.platform == "win32" and False: # temporary for testing

@flesueur
Copy link
Copy Markdown
Contributor

Yes I think so, it is now useless and can be removed.

pbiering added a commit to pbiering/Radicale that referenced this pull request Apr 23, 2026
@pbiering pbiering mentioned this pull request Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adjustment adjustment of option/code/feature cleanup/code quality cleanup or code quality fixes performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants