Hi,
i'm able to lock up xfsrestore when restoring onto a JFS filesystem.
xfsrestore becomes dead in ps and is unkillable (waiting for I/O to
happen?):
# /sbin/mkfs.jfs /dev/vg01/usrjfs
# cd /tmp
# mount -t jfs /dev/vg01/usrjfs /mnt/usr
# strace /sbin/xfsrestore -f tmp.xfsd /mnt/usr
[..bla..]
open("/mnt/usr/xfsrestorehousekeepingdir/state",
O_RDWR|O_CREAT|O_LARGEFILE, 0600) = 4
SYS_197(0x4, 0xbffff990, 0x4010cd40, 0, 0x4) = 0
_llseek(4, 20479, [20479], SEEK_SET) = 0
write(4, "\0", 1) = 1
SYS_192(0, 0x5000, 0x3, 0x1, 0x4) = 1073831936
geteuid() = 0
munmap(0x40016000, 20480) = 0
SYS_194(0x4, 0x5000, 0, 0, 0x4
...and there it ends. See the complete output attached. /tmp is on XFS
because xfsrestore wants CWD on XFS. It also happens when not using LVM
(/dev/sda1 instead of /dev/vg01/... for the block device).
$ ps auxw|grep xfsrestore
root 882 0.0 0.2 1316 528 pts/0 S 18:21 0:00 strace
/sbin/xfsrestore -f tmp.xfsd /mnt/usr
root 883 0.0 0.3 1676 784 pts/0 D 18:21 0:00
/sbin/xfsrestore -f tmp.xfsd /mnt/usr# strace /sbin/xfsrestore -f tmp.xfsd /mnt/usr
execve("/sbin/xfsrestore", ["/sbin/xfsrestore", "-f", "tmp.xfsd", "/mnt/usr"],
[/* 36 vars */]) = 0
brk(0) = 0x8098064
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40014000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=25469, ...}) = 0
mmap(0, 25469, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=4101836, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\210\212"..., 4096) =
4096
mmap(0, 1001532, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001c000
mprotect(0x40109000, 30780, PROT_NONE) = 0
mmap(0x40109000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xec000) = 0x40109000
mmap(0x4010d000, 14396, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4010d000
close(3) = 0
mprotect(0x4001c000, 970752, PROT_READ|PROT_WRITE) = 0
mprotect(0x4001c000, 970752, PROT_READ|PROT_EXEC) = 0
munmap(0x40015000, 25469) = 0
personality(0 /* PER_??? */) = 0
getpid() = 883
brk(0) = 0x8098064
brk(0x80980c4) = 0x80980c4
brk(0x8099000) = 0x8099000
getrlimit(RLIMIT_AS, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=32768*1024, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=32768*1024, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_DATA, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_CPU, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_CPU, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_CPU, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getpid() = 883
brk(0x809b000) = 0x809b000
getcwd("/tmp", 4095) = 5
getpid() = 883
getpid() = 883
getrlimit(RLIMIT_STACK, {rlim_cur=32768*1024, rlim_max=RLIM_INFINITY}) = 0
getpid() = 883
SYS_195(0x8099400, 0xbffff9d0, 0x4010cd40, 0x8099401, 0x8099400) = 0
SYS_195(0x8099400, 0xbffff9c8, 0x4010cd40, 0x8099401, 0x8099400) = 0
lstat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
lstat("/tmp/tmp.xfsd", {st_mode=S_IFREG|0664, st_size=11768160, ...}) = 0
mmap(0, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40111000
SYS_195(0x8099400, 0xbffff9bc, 0x4010cd40, 0x8099401, 0x8099400) = 0
open("/tmp/tmp.xfsd", O_RDONLY|O_LARGEFILE) = 3
SYS_197(0x1, 0xbffffaf8, 0x4010cd40, 0x4000aea0, 0x1) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid() = 883
SYS_197(0x1, 0xbffff2cc, 0x4010cd40, 0x4010a960, 0x1) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40015000
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
write(1, "/sbin/xfsrestore: version 3.0", 29/sbin/xfsrestore: version 3.0) = 29
write(1, " - Running single-threaded\n", 27 - Running single-threaded
) = 27
time(NULL) = 994004480
SYS_195(0xbffffcfb, 0xbffffa60, 0x4010cd40, 0xbffffcfb, 0xbffffcfb) = 0
mkdir("/mnt/usr/xfsrestorehousekeepingdir", 0700) = 0
open("/mnt/usr/xfsrestorehousekeepingdir/state", O_RDWR|O_CREAT|O_LARGEFILE,
0600) = 4
SYS_197(0x4, 0xbffff990, 0x4010cd40, 0, 0x4) = 0
_llseek(4, 20479, [20479], SEEK_SET) = 0
write(4, "\0", 1) = 1
SYS_192(0, 0x5000, 0x3, 0x1, 0x4) = 1073831936
geteuid() = 0
munmap(0x40016000, 20480) = 0
SYS_194(0x4, 0x5000, 0, 0, 0x4
|