[BusyBox] mv is deleting files!

Josh Malone jmalone at applieddata.net
Thu Jul 14 12:53:02 UTC 2005


Rainer Weikusat wrote:
> Steven Scholz <steven.scholz at imc-berlin.de> writes:
> 
> 
>>Hi there,
>>
>>I just noticed something strange with busybux-1.00 mv command:
>>
>>~ # ls -l /opt/imc/idxcan
>>ls: /opt/imc/idxcan: No such file or directory
>>
>>	[Ok. cause the file is not there yet.]
>>
>>~ # ls -l /tmp/idxcan
>>-rw-r--r--    1 root     root      1154716 Jan  1 00:43 /tmp/idxcan
>>
>>	[This file will be moved to /opt/imc]
>>
>>~ # mv /tmp/idxcan /opt/imc/
>>~ # ls -l /tmp/idxcan
>>ls: /tmp/idxcan: No such file or directory
>>~ # ls -l /opt/imc/idxcan
>>-rw-r--r--    1 root     root      1154716 Jan  1 00:43 /opt/imc/idxcan
>>
>>	[OK. File was moved from /tmp to /opt/imc]
>>
>>~ # mv /tmp/idxcan /opt/imc/
>>mv: /tmp/idxcan: No such file or directory
>>
>>	[Fair enough. Cause the file was moved.]
>>
>>~ # ls -l /opt/imc/idxcan
>>ls: /opt/imc/idxcan: No such file or directory
>>
>>	[Oops!!! The mv that failed apparently deleted the target!]
> 
> 
> I cannot reproduce this with 'my' busybox mv (which is some CVS/SVN
> version after 1.00, but I didn't actually touch it yet).
> 


I can reproduce your test case exactly with my busybox-1.00:

adsdebian:~# ls -l /opt/imc/idxcan
ls: /opt/imc/idxcan: No such file or directory
adsdebian:~# ls -l /tmp/idxcan
-rw-r--r--    1 root     root            7 Jan  1 00:02 /tmp/idxcan
adsdebian:~# mv /tmp/idxcan /opt/imc/
adsdebian:~# ls -l /tmp/idxcan
ls: /tmp/idxcan: No such file or directory
adsdebian:~# ls -l /opt/imc/idxcan
-rw-r--r--    1 root     root            7 Jan  1 00:02 /opt/imc/idxcan
adsdebian:~#  mv /tmp/idxcan /opt/imc/
mv: /tmp/idxcan: No such file or directory
adsdebian:~# ls -l /opt/imc/idxcan
ls: /opt/imc/idxcan: No such file or directory
adsdebian:~# ls -l /opt/
drwxr-xr-x    2 root     root         1024 Jan  1 00:03 imc
drwxr-xr-x    3 root     root         1024 Apr 28  2005 nanox
adsdebian:~# ls -l /opt/imc
adsdebian:~#

This is Busybox-1.00 on a ARM board with a ramdisk root.

However, slightly different test case doesn't reproduce the problem:

adsdebian:~# echo 'foobar3' > foo
adsdebian:~# ls -l /opt/foo
ls: /opt/foo: No such file or directory
adsdebian:~# mv foo /opt/
adsdebian:~# ls -l foo
ls: foo: No such file or directory
adsdebian:~# ls -l /opt/foo
-rw-r--r--    1 root     root            8 Jan  1 00:07 /opt/foo
adsdebian:~# mv foo /opt/
mv: unable to rename `foo': No such file or directory
adsdebian:~# ls -l /opt/foo
-rw-r--r--    1 root     root            8 Jan  1 00:07 /opt/foo

Something with 2 absolute paths?  Crossing filesystems? (/tmp is a 
second ramfs on my board right now)

adsdebian:~# ls -l /opt/foo
ls: /opt/foo: No such file or directory
adsdebian:~# ls -l /tmp/foo
-rw-r--r--    1 root     root            8 Jan  1 00:09 /tmp/foo
adsdebian:~# mv /tmp/foo /opt/foo
adsdebian:~# ls -l /tmp/foo
ls: /tmp/foo: No such file or directory
adsdebian:~# ls -l /opt/foo
-rw-r--r--    1 root     root            8 Jan  1 00:09 /opt/foo
adsdebian:~# mv /tmp/foo /opt/foo
mv: /tmp/foo: No such file or directory
adsdebian:~# ls -l /tmp/foo
ls: /tmp/foo: No such file or directory
adsdebian:~# ls -l /opt/foo
ls: /opt/foo: No such file or directory


adsdebian:/tmp# echo 'foobar9' > foo
adsdebian:/tmp# ls -l /opt/foo
ls: /opt/foo: No such file or directory
adsdebian:/tmp# ls -l foo
-rw-r--r--    1 root     root            8 Jan  1 00:10 foo
adsdebian:/tmp# mv foo /opt
adsdebian:/tmp# ls -l /opt/foo
-rw-r--r--    1 root     root            8 Jan  1 00:10 /opt/foo
adsdebian:/tmp# ls -l foo
ls: foo: No such file or directory
adsdebian:/tmp# mv foo /opt
mv: foo: No such file or directory
adsdebian:/tmp# ls -l /opt/foo
ls: /opt/foo: No such file or directory
adsdebian:/tmp# ls -l foo
ls: foo: No such file or directory

So - it only seems to happen to me when I cross filesystems.  Sounds 
like a clue.  Can anybody try this under a newer busybox to see if it 
has been fixed?

-Josh

-- 

Joshua Malone                            Linux Engineer
Applied Data Systems                www.applieddata.net
434-244-9504                    jmalone at applieddata.net




More information about the busybox mailing list