Forum: Ruby-core [Open] cannot move to an NFS directory when the source contains a relative symlink

36ccf398adbe1a4264d57b32917b990c?d=identicon&s=25 unknown (Guest)
on 2014-02-25 20:10
(Received via mailing list)
Issue #9567 has been reported by Andrew Parker.

Bug #9567: cannot move to an NFS directory when the source
contains a relative symlink

* Author: Andrew Parker
* Status: Open
* Priority: Normal
* Assignee:
* Category:
* Target version:
* ruby -v: 1.9.3-p194
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
root@local-gravityapple:/home/www# mkdir /tmp/testing
root@local-gravityapple:/home/www# cd /tmp/testing
root@local-gravityapple:/tmp/testing# echo "file" > file
root@local-gravityapple:/tmp/testing# ln -s file link
root@local-gravityapple:/tmp/testing# ls -l
total 4
-rw-r--r-- 1 root root 5 Feb 25 19:01 file
lrwxrwxrwx 1 root root 4 Feb 25 19:01 link -> file
root@local-gravityapple:/tmp/testing# cd -
root@local-gravityapple:/home/www# ruby -rfileutils -e
'"/tmp/testing", "/home/www")'
/usr/lib/ruby/1.9.1/fileutils.rb:1379:in `utime': No such file or
directory - /home/www/testing/link (Errno::ENOENT)
        from /usr/lib/ruby/1.9.1/fileutils.rb:1379:in `copy_metadata'
        from /usr/lib/ruby/1.9.1/fileutils.rb:466:in `block in
        from /usr/lib/ruby/1.9.1/fileutils.rb:1433:in
        from /usr/lib/ruby/1.9.1/fileutils.rb:462:in `copy_entry'
        from /usr/lib/ruby/1.9.1/fileutils.rb:521:in `rescue in block in
        from /usr/lib/ruby/1.9.1/fileutils.rb:518:in `block in mv'
        from /usr/lib/ruby/1.9.1/fileutils.rb:1515:in `block in
        from /usr/lib/ruby/1.9.1/fileutils.rb:1529:in
        from /usr/lib/ruby/1.9.1/fileutils.rb:1513:in `fu_each_src_dest'
        from /usr/lib/ruby/1.9.1/fileutils.rb:508:in `mv'
        from -e:1:in `<main>'
root@local-gravityapple:/home/www# ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
root@local-gravityapple:/home/www# cat /etc/debian_version

If the same exercise is done, but the `link` symlink is made as using
the absolute path (`/tmp/testing/file`) then `` succeeds.
This only seems to affect NFS mounts. Moving to a non-NFS mounted
location with the relative link works.

It seems that it is copying the link first and then failing while trying
to resolve the copied link. The destination location contains the
root@local-gravityapple:/home/www# ls -l testing/
total 4
lrwxrwxrwx 1 504 dialout 4 Feb 25 19:02 link -> file
This topic is locked and can not be replied to.