[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