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

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to