ar 'unable to rename... Invalid cross-device link'

Matthew Woehlke mw_triad@users.sourceforge.net
Wed Feb 7 17:48:00 GMT 2007


(I hope this gets through (and only once), gmane has been misbehaving 
all day...)

Corinna Vinschen wrote:
> On Feb  7 11:55, Corinna Vinschen wrote:
>> On Feb  6 16:38, Matthew Woehlke wrote:
>>> ...anyone have any guesses why rename() can't rename files in the same 
>>> directory, if the directory is an NFS mount? This causes 'ar' to fail 
>>> with the error:
>>>
>>> ar: unable to rename 'libcloudobj.a' reason: Invalid cross-device link
>>>
>>> I see this in strace with both 'ar' and 'mv':
>>>
>>>    46  371094 [main] ar 2588 rename: -1 = rename 
>>> (h:\<...path...>\src\objects\stWBl4pj, 
>>> h:\<...path...>\src\objects\libcloudobj.a)
>>>
>>> This seems to happen when the file already exists, but rename() only 
>>> fails on NFS mounts (not local drives). Is this a problem with 'ar', or 
>>> Cygwin's rename()?
>> Since you're one of the few running NFS, you should also debug the
>> situation further.  Apparently the Cygwin rename function fails, but
>> from your one-liner strace snippet there's no hint at all what happens.
>> The error should have been mentioned a couple of lines before.  You
>> should also mention if you use a release version of Cygwin or a
>> developer snapshot.  You know http://cygwin.com/problems.html, don't
>> you?
> 
> I just installed SFU NFS for testing and, here it comes:
> 
>   "I can not reproduce rename failing on an NFS share."
> 
> Maybe it's something with your permissions.
> http://cygwin.com/acronyms/#SHTDI2(*)

Thanks for trying. Sorry about forgetting the version info, although 
(and I forgot to mention this too, more apologies...) 'ren' in cmd.com 
also fails, which is why I am pretty sure the problem is that for some 
unknown reason, rename() (meaning Windows' API) fails on NFS if the 
target already exists, at least under whatever combinations of 
permissions I have... with error 17 (ERROR_NOT_SAME_DEVICE) of all 
things (which Cygwin translates to 18=EXDEV). I think the real question 
is 'should ar and/or Cygwin work around this apparent Windows bug'?

D'oh! And I have more information... it only fails on Win2k3 (which 
means SUA, not SFU). I just tried on my XP machine and 'ar' succeeds.

getfacl doesn't have much to say:
$ getfacl.exe .
# file: .
# owner: mwoehlke
# group: None
user::rwx
group::r-x
other:r-x
mask:rwx

Cygwin version is 1.5.24(0.156/4/2) (are any of the other package 
versions really relevant?)

-- 
Matthew
We interrupt this e-mail to bring you a lame signature attempting to be 
witty.

--
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