[Gllug] Why won't tar access a remote device?
Nix
nix at esperi.org.uk
Mon Mar 13 21:18:26 UTC 2006
On Mon, 13 Mar 2006, John Winters prattled cheerily:
> On Mon, 2006-03-13 at 08:33 +0000, Nix wrote:
>> Unfortunately without knowing what the command line was, debugging by
>> looking at the source is very difficult,
>
> The command line is included in the first line of the strace.
Oh, duh. Sorry for not noticing it.
> It
> doesn't seem to be crucial what the exact command line was - anything
> involving a remote device seems to trigger the bug.
I see the same symptoms with upstream tar 1.15.1.
Upstream tar 1.15.90 says
hades 12 /usr/packages/tar/i686-hades/src% ./tar cvf extract.c nix at loki:/tmp/blah
./tar: nix at loki\:/tmp/blah: Cannot stat: No such file or directory
./tar: Error exit delayed from previous errors
without ever doing any visible stat()s:
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/gconv/gconv-modules", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=45568, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f25000
[...]
read(4, "module\tINTERNAL\t\tEUC-JISX0213//\t"..., 4096) = 512
read(4, "", 4096) = 0
close(4) = 0
munmap(0xb7f25000, 4096) = 0
futex(0x447a5170, FUTEX_WAKE, 2147483647) = 0
open("/usr/lib/gconv/ISO8859-1.so", O_RDONLY) = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\4\0"..., 512) = 512
fstat64(4, {st_mode=S_IFREG|0755, st_size=11952, ...}) = 0
mmap2(NULL, 12324, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0xb7f22000
mmap2(0xb7f24000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1) = 0xb7f24000
close(4) = 0
mprotect(0xb7f24000, 4096, PROT_READ) = 0
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, ": No such file or directory", 27: No such file or directory) = 27
write(2, "\n", 1
) = 1
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 10240) = 10240
clock_gettime(CLOCK_REALTIME, {1142284382, 439511000}) = 0
clock_gettime(CLOCK_REALTIME, {1142284382, 440409000}) = 0
close(3) = 0
close(1) = 0
write(2, "./tar: ", 7./tar: ) = 7
write(2, "Error exit delayed from previous"..., 39Error exit delayed from previous errors) = 39
write(2, "\n", 1
(Upstream tar 1.15.90 also fails its own `make check' in several places,
so it wouldn't really be a replacement in any case...)
I'd say that either this needs to go upstream, or we're getting
something very wrong (well, I could well be: I've never used tar remote
devices and in fact didn't even know that tar could do such a thing.)
--
`Come now, you should know that whenever you plan the duration of your
unplanned downtime, you should add in padding for random management
freakouts.'
--
Gllug mailing list - Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug
More information about the GLLUG
mailing list