[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#51857: cross-filesystem copying broken on macOS with coreutils >= 9.
From: |
Cameron Katri |
Subject: |
bug#51857: cross-filesystem copying broken on macOS with coreutils >= 9.0 |
Date: |
Mon, 15 Nov 2021 10:48:19 -0500 |
> On Nov 15, 2021, at 10:09 AM, Pádraig Brady <P@draigBrady.com> wrote:
>
> On 15/11/2021 04:02, Sudhip Nashi via GNU coreutils Bug Reports wrote:
>> Hello,
>> Cross-filesystem copying seems to have been broken in the latest coreutils
>> release on macOS. Running a command like ‘cp /usr/bin/clear /tmp/test’
>> appears to return successfully, but if one analyzes /tmp/test, it’s filled
>> with NULL characters. However, copying works fine when the source and
>> destination file are on the same filesystem. Do you know what might be
>> causing this?
>> Thanks in advance,
>> Sudhip Nashi
>
> What are the source and dest file system types?
> Could you send the output of `sudo dtruss cp /usr/bin/clear /tmp/test`?
> I suspect SEEK_DATA may have issues on nacOS,
> as usage of that is new in coreutils 9.0.
>
> thanks,
> Pádraig
Here yo go:
sudo dtruss ./src/cp /usr/bin/clear /tmp/test
SYSCALL(args) = return
access("/AppleInternal/XBS/.isChrooted\0", 0x0, 0x0) = -1 Err#2
bsdthread_register(0x1AEC802C8, 0x1AEC802BC, 0x4000) = 1073742303 0
shm_open(0x1AEB48F55, 0x0, 0xFFFFFFFFB821D000) = 3 0
fstat64(0x3, 0x16DDC2070, 0x0) = 0 0
mmap(0x0, 0x4000, 0x1, 0x40001, 0x3, 0x0) = 0x102170000 0
close(0x3) = 0 0
ioctl(0x2, 0x4004667A, 0x16DDC211C) = 0 0
mprotect(0x1021A0000, 0x4000, 0x0) = 0 0
mprotect(0x1021AC000, 0x4000, 0x0) = 0 0
mprotect(0x1021B0000, 0x4000, 0x0) = 0 0
mprotect(0x1021BC000, 0x4000, 0x0) = 0 0
mprotect(0x1021C0000, 0x4000, 0x0) = 0 0
mprotect(0x1021CC000, 0x4000, 0x0) = 0 0
mprotect(0x102174000, 0x90, 0x1) = 0 0
mprotect(0x102174000, 0x90, 0x3) = 0 0
mprotect(0x102174000, 0x90, 0x1) = 0 0
mprotect(0x10217C000, 0x4000, 0x1) = 0 0
mprotect(0x1021D0000, 0x90, 0x1) = 0 0
mprotect(0x1021D0000, 0x90, 0x3) = 0 0
mprotect(0x1021D0000, 0x90, 0x1) = 0 0
mprotect(0x102174000, 0x90, 0x3) = 0 0
mprotect(0x102174000, 0x90, 0x1) = 0 0
mprotect(0x10217C000, 0x4000, 0x3) = 0 0
mprotect(0x10217C000, 0x4000, 0x1) = 0 0
objc_bp_assist_cfg_np(0x1AEB103C0, 0x8000000000201048, 0x0) = -1
Err#5
issetugid(0x0, 0x0, 0x0) = 0 0
getentropy(0x16DDC1EC8, 0x20, 0x0) = 0 0
getentropy(0x16DDC1F18, 0x40, 0x0) = 0 0
getpid(0x0, 0x0, 0x0) = 4661 0
stat64("/AppleInternal\0", 0x16DDC2680, 0x0) = -1 Err#2
csops_audittoken(0x1235, 0x7, 0x16DDC21B0) = 0 0
proc_info(0x2, 0x1235, 0xD) = 64 0
csops_audittoken(0x1235, 0x7, 0x16DDC2270) = 0 0
sysctlbyname(kern.osvariant_status, 0x15, 0x16DDC26E8, 0x16DDC26E0, 0x0)
= 0 0
csops(0x1235, 0x0, 0x16DDC270C) = 0 0
geteuid(0x0, 0x0, 0x0) = 0 0
getuid(0x0, 0x0, 0x0) = 0 0
sysctl([CTL_KERN, 14, 1, 4661, 0, 0] (4), 0x16DDC0C00, 0x16DDC0BE8, 0x0, 0x0)
= 0 0
gettid(0x16DDC0EE0, 0x16DDC0EE4, 0x0) = -1 Err#3
geteuid(0x0, 0x0, 0x0) = 0 0
getegid(0x0, 0x0, 0x0) = 0 0
csops(0x1235, 0x0, 0x16DDC1C24) = 0 0
gettid(0x16DDC0EB0, 0x16DDC0EB4, 0x0) = -1 Err#3
geteuid(0x0, 0x0, 0x0) = 0 0
getegid(0x0, 0x0, 0x0) = 0 0
mprotect(0x102068000, 0x100000, 0x1) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_COLLATE\0", 0x0, 0x0)
= 3 0
fcntl_nocancel(0x3, 0x3, 0x0) = 0 0
getrlimit(0x1008, 0x16DDC2F98, 0x0) = 0 0
fstat64(0x3, 0x16DDC2F10, 0x0) = 0 0
read_nocancel(0x3, "1.1A\n\0", 0x1000) = 2086 0
close_nocancel(0x3) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_CTYPE\0", 0x0, 0x0)
= 3 0
fcntl_nocancel(0x3, 0x3, 0x0) = 0 0
fstat64(0x3, 0x16DDC3040, 0x0) = 0 0
fstat64(0x3, 0x16DDC2E30, 0x0) = 0 0
lseek(0x3, 0x0, 0x1) = 0 0
lseek(0x3, 0x0, 0x0) = 0 0
read_nocancel(0x3, "RuneMagAUTF-8\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "\0", 0x1000) = 4096 0
read_nocancel(0x3, "@\004\211\0", 0xF5D0) = 62928 0
close_nocancel(0x3) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_MONETARY\0", 0x0, 0x0)
= 3 0
fstat64(0x3, 0x16DDC3060, 0x0) = 0 0
read_nocancel(0x3, "USD \n$\n.\n,\n3;3\n\n-\n2\n2\n1\n0\n1\n0\n1\n1\n(\0",
0x22) = 34 0
close_nocancel(0x3) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_NUMERIC\0", 0x0, 0x0)
= 3 0
fstat64(0x3, 0x16DDC3060, 0x0) = 0 0
read_nocancel(0x3, ".\n,\n3;3\n@$\b\0", 0x8) = 8 0
close_nocancel(0x3) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_TIME\0", 0x0, 0x0)
= 3 0
fstat64(0x3, 0x16DDC3070, 0x0) = 0 0
read_nocancel(0x3,
"Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\nSep\nOct\nNov\nDec\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nSun\nMon\nTue\nWed\nThu\nFri\nSat\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\n%H:%M:%S\n%m/%d/%Y\n%a
%b %e %X %Y\nAM\nP", 0x179) = 377 0
close_nocancel(0x3) = 0 0
open_nocancel("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/LC_MESSAGES\0", 0x0,
0x0) = 3 0
fstat64(0x3, 0x16DDC3070, 0x0) = 0 0
read_nocancel(0x3, "^[yYsS].*\n^[nN].*\n(\0", 0x12) = 18 0
close_nocancel(0x3) = 0 0
geteuid(0x0, 0x0, 0x0) = 0 0
stat64("/tmp/test\0", 0x16DDC36C0, 0x0) = 0 0
fstatat64(0xFFFFFFFFFFFFFFFE, 0x16DDC3C21, 0x16DDC2BA0) = 0 0
fstatat64(0xFFFFFFFFFFFFFFFE, 0x16DDC3C30, 0x16DDC2B10) = 0 0
open("/usr/bin/clear\0", 0x0, 0x0) = 3 0
fstat64(0x3, 0x16DDC2C30, 0x0) = 0 0
open("/tmp/test\0", 0x401, 0x0) = 4 0
fstat64(0x4, 0x16DDC2CC0, 0x0) = 0 0
fstat64(0x4, 0x16DDC2D50, 0x0) = 0 0
fcntl(0x3, 0x32, 0x16DDC3200) = 0 0
fcntl(0x4, 0x32, 0x16DDC2E00) = 0 0
unlink("/private/tmp/test\0", 0x0, 0x0) = 0 0
clonefileat(0xFFFFFFFFFFFFFFFE, 0x16DDC3200, 0xFFFFFFFFFFFFFFFE)
= -1 Err#18
open("/private/tmp/test\0", 0x601, 0x81ED) = 5 0
close(0x5) = 0 0
open("/private/tmp/test\0", 0x2, 0x0) = 5 0
dup2(0x5, 0x4, 0x0) = 4 0
close(0x5) = 0 0
fchmod(0x4, 0x81ED, 0x0) = 0 0
fchown(0x4, 0x0, 0x0) = 0 0
futimes(0x4, 0x16DDC2DE0, 0x0) = 0 0
sysctl([CTL_HW, 7, 0, 0, 0, 0] (2), 0x207EC4068, 0x16DDC2A30, 0x0, 0x0)
= 0 0
lseek(0x3, 0x0, 0x4) = -1 Err#6
ftruncate(0x4, 0x1D770, 0x0) = 0 0
close(0x4) = 0 0
close(0x3) = 0 0
lseek(0x0, 0x0, 0x1) = 6741 0
lseek(0x0, 0x0, 0x1) = 6741 0
lseek(0x0, 0x1A55, 0x0) = 6741 0
close_nocancel(0x0) = 0 0
close_nocancel(0x1) = 0 0
close_nocancel(0x2) = 0 0