Strange paths in NTFS reparse points created by Cygwin Setup for e.g. TTF fonts

Michael Soegtrop MSoegtrop@yahoo.de
Sun Nov 8 14:40:39 GMT 2020


Hi Ken, L A Walsh,

 > But you can change this if you don't like it, as I said in my reply 
to your earlier message about this:

I don't know if I like it yet - I am still in the process of 
understanding what is going on.

I maintain the Windows build of a large open source project and we also 
deliver scripts to setup cygwin on our user's machines. I need to 
understand what is going on before I make changes to settings. I am 
afraid that using non standard settings in the end will lead to more 
confusion than good - especially if people have several cygwin 
installations. Also I need to be able to support our users in case they 
have issues with this.

The interesting point is that in our CI we do several 100 cygwin 
installations (sometimes more than 1000) per month. For 95%..99% the 
removal with "rm -rf" from another cygwin installation works well, in 
about 1%..5% of the case about 250 symlinks / reparse points remain. 
This happens all on the same machines with identical scripts.

With my manual installations of cygwin it is about the same ratio. I had 
two cases where removing a cygwin installation from Windows explorer 
with "shift+delete" did not work cause of these about 250 symlinks - I 
would say I did roughly 100 installations in this time frame.

What I don't understand is why it does work sometimes and sometimes not. 
I always use the same scripts to install and remove cygwin on the same 
machines and then do pretty much the same thing with this cygwin (build 
our open source software) before I delete it.

It is unlikely that the issue is that the target files are open as L A 
Welsh suggested because always either all symlinks or none at all 
remain. The number is always the same (with recent versions afair 258).

@ L A Walsh: you wrote "1) if you try to delete the file in cygwin"

Why shouldn't I be able to remove symlinks with rm -rf from within a 
cygwin? As far as I understand the standard behavior of "rm" is to 
remove the symlink and not its target. What I do when I remove a cygwin 
installation in our CI is an "rm -rf" from a different cygwin 
installation. As I said in most cases this works but rarely it doesn't.

In case it doesn't work the symlinks are quite hard to get rid of. 
FSUTIL REPARSEPOINT DELETE is the only method which works I found so 
far. Even after a reboot, resetting the ACLs in various ways, ... no 
usual method to remove these files works.

I understand that the contents / path of the symlink is as expected, so 
I am looking out for other oddities which could explain this behavior.

Best regards,

Michael



More information about the Cygwin mailing list