rm fails with bad mount information

Duncan Murdoch murdoch@stats.uwo.ca
Thu Jan 17 19:55:00 GMT 2008


On 1/17/2008 10:59 AM, Corinna Vinschen wrote:
> On Jan 17 10:39, Duncan Murdoch wrote:
>> I'm a Windows maintainer for the R project.  We include the Cygwin rm.exe 
>> program in the toolset we've put together for developers, and have 
>> occasionally heard that it fails.
>>
>> A few days ago I tracked down the cause of failure to the following:
>>
>> Users who install Cygwin then uninstall it (perhaps improperly, I'm not 
>> sure) can be left with the registry key
>>
>> [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/]
>>
>> set with a non-existent path as the "native" string value (which is 
>> normally be something like "c:\\cygwin").  When that happens, "rm -rf 
>> subdir" fails with this message:
>>
>> C:\temp  rm -rf test
>> rm: failed to get attributes of `/': No such file or directory
>>
>> I suspect this is user error in uninstalling Cygwin improperly, but it's 
>> still somewhat perplexing to users.  Perhaps rm (and other utilities doing 
>> whatever it is doing) should be more robust against bad mounts?
> 
> This is not a problem of rm.  It doesn't actually look for mount points.
> It just uses the POSIX paths it gets from the Cygwin DLL and the Cygwin
> DLL translates that into native paths using the mount points in the
> registry.
> 
> However, if the Cygwin installation has been uninstalled, how is rm
> supposed to find the Cygwin DLL?  It can't work.  You should really tell
> your users not to deinstall Cygwin when using your product.  It also
> doesn't make sense also to ship rm with your toolset.   Better rely on a
> functional Cygwin installation instead.  rm is part of coreutils which
> is installed by default anyway.

Our users don't install all of Cygwin, we've extracted the minimal parts 
needed for a build of R.  (We've also modified make and tar for our 
needs -- the originals require a full Cygwin setup, ours don't.)  So rm 
finds the Cygwin dll using the usual Windows rules for finding a DLL.

Yes, this sometimes causes trouble for users who already have Cygwin 
installed (a little bit of DLL hell), but we would rather have control 
over the versions of the tools in use.  Our experience is that most 
users who have Cygwin can easily deal with those problems (they don't 
install our copy of the DLLs), whereas users who don't have Cygwin have 
an easier time with just one install (our toolset) rather than 4 (our 
tools, Cygwin, Perl, MinGW).

I can understand you might not want to support the way we are using rm, 
but thought it was better to put the bug report in than to sit on it.

Duncan Murdoch


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



More information about the Cygwin mailing list