bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#52410: "mv -T --backup=numbered hello world/" renameat2 infinite loo


From: Vincent Vermilya
Subject: bug#52410: "mv -T --backup=numbered hello world/" renameat2 infinite loop
Date: Fri, 10 Dec 2021 02:22:03 -0800

If DEST directory has a trailing slash in "mv -T --backup=numbered", mv
gets stuck in an infinite loop. This does not happen without the trailing
slash. strace shows renameat2 as the call that gets looped on. This is
tested on coreutils 8.30 Ubuntu 20.04.

Example:
```
mkdir hello hello1 world/
mv -T --backup=numbered hello world/
strace mv -T --backup=numbered hello1 world/ 2>&1 | less
```
less output at infinite loop:
```
renameat2(AT_FDCWD, "world/", 3, "world.~1~", RENAME_NOREPLACE) = -1 EEXIST
(File exists)
lseek(3, 0, SEEK_SET)                   = 0
getdents64(3, /* 39 entries */, 32768)  = 1240
getdents64(3, /* 0 entries */, 32768)   = 0
renameat2(AT_FDCWD, "world/", 3, "world/", RENAME_NOREPLACE) = -1 EEXIST
(File exists)
lseek(3, 0, SEEK_SET)                   = 0
getdents64(3, /* 39 entries */, 32768)  = 1240
getdents64(3, /* 0 entries */, 32768)   = 0
renameat2(AT_FDCWD, "world/", 3, "world/", RENAME_NOREPLACE) = -1 EEXIST
(File exists)
lseek(3, 0, SEEK_SET)                   = 0
getdents64(3, /* 39 entries */, 32768)  = 1240
getdents64(3, /* 0 entries */, 32768)   = 0
```


reply via email to

[Prev in Thread] Current Thread [Next in Thread]