Jim Meyering <j...@meyering.net> wrote:
> Can you rerun that via strace and send the log at least
> to the bug-coreutils list (Cc'd)?
> 
>     strace -o log cp --reflink testfile testfile2

It opens both files and then performs the ioctl() call:
ioctl(4, 0x40049409, 0x3)               = -1 EINVAL (Invalid argument)

> 
> Even better, can you do that using stock upstream coreutils-8.2,
> assuming it still fails?

This may not be necessary. If I run strace on bcp, it turns out that its
ioctl() call encounters the same error:

ioctl(3, 0x40049409, 0x4)               = -1 EINVAL (Invalid argument)
and thus the suggestion that bcp (by behaving like --reflink=auto) is masking
the issue appears to be exactly on point.


execve("/bin/cp", ["cp", "--reflink", "testfile", "testfile2"], [/* 17 vars 
*/]) = 0
brk(0)                                  = 0x23ca000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485b4000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485b2000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=25245, ...}) = 0
mmap(NULL, 25245, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fbb485ab000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libselinux.so.1", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 ]\0\0\0\0\0\0"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0644, st_size=113736, ...}) = 0
mmap(NULL, 2213640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fbb4817c000
mprotect(0x7fbb48197000, 2093056, PROT_NONE) = 0
mmap(0x7fbb48396000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7fbb48396000
mmap(0x7fbb48398000, 1800, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbb48398000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libacl.so.1", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\36\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=30472, ...}) = 0
mmap(NULL, 2125648, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fbb47f75000
mprotect(0x7fbb47f7c000, 2093056, PROT_NONE) = 0
mmap(0x7fbb4817b000, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fbb4817b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libattr.so.1", O_RDONLY)     = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\24\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=17808, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485aa000
mmap(NULL, 2112952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fbb47d71000
mprotect(0x7fbb47d75000, 2093056, PROT_NONE) = 0
mmap(0x7fbb47f74000, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fbb47f74000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\353\1\0\0\0\0\0"..., 832) = 
832
fstat(3, {st_mode=S_IFREG|0755, st_size=1379752, ...}) = 0
mmap(NULL, 3487784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fbb47a1d000
mprotect(0x7fbb47b67000, 2097152, PROT_NONE) = 0
mmap(0x7fbb47d67000, 20480, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14a000) = 0x7fbb47d67000
mmap(0x7fbb47d6c000, 18472, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbb47d6c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14696, ...}) = 0
mmap(NULL, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fbb47819000
mprotect(0x7fbb4781b000, 2097152, PROT_NONE) = 0
mmap(0x7fbb47a1b000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fbb47a1b000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485a9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485a8000
arch_prctl(ARCH_SET_FS, 0x7fbb485a8790) = 0
mprotect(0x7fbb47a1b000, 4096, PROT_READ) = 0
mprotect(0x7fbb47d67000, 16384, PROT_READ) = 0
mprotect(0x7fbb48396000, 4096, PROT_READ) = 0
mprotect(0x7fbb485b5000, 4096, PROT_READ) = 0
munmap(0x7fbb485ab000, 25245)           = 0
statfs("/selinux", {f_type=0x9123683e, f_bsize=4096, f_blocks=2498107, 
f_bfree=2060896, f_bavail=2060896, f_files=0, f_ffree=0, f_fsid={-458043433, 
-212768726}, f_namelen=255, f_frsize=4096}) = 0
brk(0)                                  = 0x23ca000
brk(0x23eb000)                          = 0x23eb000
open("/proc/filesystems", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485b1000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 272
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x7fbb485b1000, 4096)            = 0
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1334848, ...}) = 0
mmap(NULL, 1334848, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fbb48462000
close(3)                                = 0
open("/proc/filesystems", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485b1000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 272
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x7fbb485b1000, 4096)            = 0
geteuid()                               = 1000
stat("testfile2", 0x7fffcb8d9e80)       = -1 ENOENT (No such file or directory)
stat("testfile", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
stat("testfile2", 0x7fffcb8d9c20)       = -1 ENOENT (No such file or directory)
open("testfile", O_RDONLY)              = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("testfile2", O_WRONLY|O_CREAT|O_EXCL, 0644) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
ioctl(4, 0x40049409, 0x3)               = -1 EINVAL (Invalid argument)
open("/usr/share/locale/locale.alias", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fbb485b1000
read(5, "# Locale name alias data base.\n#"..., 4096) = 2570
read(5, "", 4096)                       = 0
close(5)                                = 0
munmap(0x7fbb485b1000, 4096)            = 0
open("/usr/share/locale/en_AU.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_AU.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=435, ...}) = 0
mmap(NULL, 435, PROT_READ, MAP_PRIVATE, 5, 0) = 0x7fbb485b1000
close(5)                                = 0
write(2, "cp: ", 4)                     = 4
write(2, "failed to clone `testfile2'", 27) = 27
open("/usr/share/locale/en_AU.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en_AU.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such 
file or directory)
write(2, ": Invalid argument", 18)      = 18
write(2, "\n", 1)                       = 1
close(4)                                = 0
close(3)                                = 0
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
exit_group(1)                           = ?

Reply via email to