* xfsrestore over ssh? @ 2008-07-21 20:17 Richard Hartmann 2008-07-21 20:33 ` Bill Kendall 0 siblings, 1 reply; 16+ messages in thread From: Richard Hartmann @ 2008-07-21 20:17 UTC (permalink / raw) To: xfs Hi all, I am unable to find the correct command to restore a xfs dump over ssh. I don't care on which of the two boxes I need to run the command, if anyone could tell me either way, that would be hugely appreciated! Thanks in advance, Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-21 20:17 xfsrestore over ssh? Richard Hartmann @ 2008-07-21 20:33 ` Bill Kendall 2008-07-22 3:02 ` Richard Hartmann 0 siblings, 1 reply; 16+ messages in thread From: Bill Kendall @ 2008-07-21 20:33 UTC (permalink / raw) To: Richard Hartmann; +Cc: xfs On 07/21/2008 03:17 PM, Richard Hartmann wrote: > Hi all, > > I am unable to find the correct command to restore a xfs dump > over ssh. I don't care on which of the two boxes I need to run > the command, if anyone could tell me either way, that would > be hugely appreciated! > > > Thanks in advance, > Richard > Something like this should work. Run it from the host that has the dump file and ssh to the box that needs to have restore. % cat dumpfile | ssh root@host xfsrestore - /restore/here Bill ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-21 20:33 ` Bill Kendall @ 2008-07-22 3:02 ` Richard Hartmann 2008-07-22 3:59 ` Timothy Shimmin 0 siblings, 1 reply; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 3:02 UTC (permalink / raw) To: Bill Kendall; +Cc: xfs On Mon, Jul 21, 2008 at 22:33, Bill Kendall <wkendall@sgi.com> wrote: > % cat dumpfile | ssh root@host xfsrestore - /restore/here I did try cat root.xfs | ssh root@192.168.1.213 xfsrestore - /mnt/sda3 which resulted in The authenticity of host '192.168.1.213 (192.168.1.213)' can't be established. RSA key fingerprint is 3c:a9:a3:84:0f:8e:e2:84:c9:c6:85:af:5f:8d:52:5f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.213' (RSA) to the list of known hosts. Password: xfsrestore: using file dump (drive_simple) strategy xfsrestore: version 2.2.45 (dump format 3.0) - Running single-threaded xfsrestore: unable to construct a file system handle for /mnt/sda3: Das Argument ist ung�ltig xfsrestore: Restore Status: ERROR 'The argument is invalid' -- needless to say, this is a valid xfs partition of appropriate size.. Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 3:02 ` Richard Hartmann @ 2008-07-22 3:59 ` Timothy Shimmin 2008-07-22 4:43 ` Richard Hartmann 2008-07-22 6:33 ` Nathan Scott 0 siblings, 2 replies; 16+ messages in thread From: Timothy Shimmin @ 2008-07-22 3:59 UTC (permalink / raw) To: Richard Hartmann; +Cc: Bill Kendall, xfs Richard Hartmann wrote: > On Mon, Jul 21, 2008 at 22:33, Bill Kendall <wkendall@sgi.com> wrote: > > >> % cat dumpfile | ssh root@host xfsrestore - /restore/here > > I did try > > cat root.xfs | ssh root@192.168.1.213 xfsrestore - /mnt/sda3 > > which resulted in > > The authenticity of host '192.168.1.213 (192.168.1.213)' can't be established. > RSA key fingerprint is 3c:a9:a3:84:0f:8e:e2:84:c9:c6:85:af:5f:8d:52:5f. > Are you sure you want to continue connecting (yes/no)? yes > Warning: Permanently added '192.168.1.213' (RSA) to the list of known hosts. > Password: > xfsrestore: using file dump (drive_simple) strategy > xfsrestore: version 2.2.45 (dump format 3.0) - Running single-threaded > xfsrestore: unable to construct a file system handle for /mnt/sda3: > Das Argument ist ung�ltig > xfsrestore: Restore Status: ERROR > > 'The argument is invalid' -- needless to say, this is a valid xfs partition of > appropriate size.. > > The final argument to restore should be a destination directory not a device (as Donald sitting nearby mentioned to me :). xfsrestore just uses standard posix calls for the most part to restore the files (seeks, writes, etc...) to a mounted filesystem - and in many circumstances can restore on a non-xfs mounted filesystem. It is _NOT_ a low level file system restorer to an unmounted filesystem like some other restorers. --Tim ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 3:59 ` Timothy Shimmin @ 2008-07-22 4:43 ` Richard Hartmann 2008-07-22 6:20 ` Donald Douwsma 2008-07-22 6:33 ` Nathan Scott 1 sibling, 1 reply; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 4:43 UTC (permalink / raw) To: Timothy Shimmin; +Cc: Bill Kendall, xfs On Tue, Jul 22, 2008 at 05:59, Timothy Shimmin <tes@sgi.com> wrote: > xfsrestore just uses standard posix calls for the most part to > restore the files (seeks, writes, etc...) to a mounted filesystem - > and in many circumstances can restore on a non-xfs mounted filesystem. > It is _NOT_ a low level file system restorer to an unmounted filesystem > like some other restorers. True, this is why I told it to use /mnt/sda3, not a raw device :) Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 4:43 ` Richard Hartmann @ 2008-07-22 6:20 ` Donald Douwsma 2008-07-22 10:40 ` Richard Hartmann 0 siblings, 1 reply; 16+ messages in thread From: Donald Douwsma @ 2008-07-22 6:20 UTC (permalink / raw) To: Richard Hartmann; +Cc: Timothy Shimmin, Bill Kendall, xfs Richard Hartmann wrote: > On Tue, Jul 22, 2008 at 05:59, Timothy Shimmin <tes@sgi.com> wrote: > > >> xfsrestore just uses standard posix calls for the most part to >> restore the files (seeks, writes, etc...) to a mounted filesystem - >> and in many circumstances can restore on a non-xfs mounted filesystem. >> It is _NOT_ a low level file system restorer to an unmounted filesystem >> like some other restorers. > > True, this is why I told it to use /mnt/sda3, not a raw device :) :), looks like we both misread that. Should be working then. If you hexdump the start of the dump does it look reasonable? It should be something like: molten:/home/donaldd # hexdump -C dump | head 00000000 78 46 53 64 75 6d 70 30 00 00 00 02 02 05 e8 49 |xFSdump0.......I| 00000010 48 85 7c cc 00 00 00 00 00 00 00 00 0e 86 21 36 |H.|...........!6| 00000020 86 06 e5 1d 17 32 49 a0 ad ea 5d 1d a2 7c d9 a3 |.....2I...]..|..| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000100 6d 6f 6c 74 65 6e 00 00 00 00 00 00 00 00 00 00 |molten..........| 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 73 6f 6d 65 6c 61 62 65 6c 00 00 00 00 00 00 00 |somelabel.......| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 6:20 ` Donald Douwsma @ 2008-07-22 10:40 ` Richard Hartmann 0 siblings, 0 replies; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 10:40 UTC (permalink / raw) To: Donald Douwsma; +Cc: Timothy Shimmin, Bill Kendall, xfs On Tue, Jul 22, 2008 at 08:20, Donald Douwsma <donaldd@sgi.com> wrote: > Should be working then. If you hexdump the start of the dump does it look > reasonable? It should be something like: 00000000 78 46 53 64 75 6d 70 30 00 00 00 02 7c 88 36 7e |xFSdump0....|.6~| 00000010 48 80 68 62 00 00 00 00 00 00 00 00 00 7f 01 01 |H.hb............| 00000020 4d 5b 06 14 c5 68 40 99 9d 23 9d ef 10 23 5d 4a |M[...h@..#...#]J| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000100 69 6c 6f 6e 61 2d 6c 61 70 74 6f 70 00 00 00 00 |ilona-laptop....| 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 |................| 00000410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| An interactive xfsrestore on the local computer does work like a charm, as well. Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 3:59 ` Timothy Shimmin 2008-07-22 4:43 ` Richard Hartmann @ 2008-07-22 6:33 ` Nathan Scott 2008-07-22 7:04 ` Timothy Shimmin 2008-07-22 10:45 ` Richard Hartmann 1 sibling, 2 replies; 16+ messages in thread From: Nathan Scott @ 2008-07-22 6:33 UTC (permalink / raw) To: Timothy Shimmin; +Cc: Richard Hartmann, Bill Kendall, xfs On Tue, 2008-07-22 at 13:59 +1000, Timothy Shimmin wrote: > Richard Hartmann wrote: > > On Mon, Jul 21, 2008 at 22:33, Bill Kendall <wkendall@sgi.com wrote: > xfsrestore: unable to construct a file system handle for /mnt/sda3: > > Das Argument ist ung�ltig > > xfsrestore: Restore Status: ERROR "unable to construct a file system handle" - theres only one place in the restore code that can come from - the path_to_fshandle call. Is there a 32 bit userspace and 64 bit kernel on the machine where xfsrestore is running? Its not clear to me what that code in xfsrestore is trying to do, you may be able to just comment it out...?!? cheers. -- Nathan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 6:33 ` Nathan Scott @ 2008-07-22 7:04 ` Timothy Shimmin 2008-07-22 10:51 ` Richard Hartmann 2008-07-22 10:45 ` Richard Hartmann 1 sibling, 1 reply; 16+ messages in thread From: Timothy Shimmin @ 2008-07-22 7:04 UTC (permalink / raw) To: Nathan Scott; +Cc: Richard Hartmann, Bill Kendall, xfs Nathan Scott wrote: > On Tue, 2008-07-22 at 13:59 +1000, Timothy Shimmin wrote: >> Richard Hartmann wrote: >>> On Mon, Jul 21, 2008 at 22:33, Bill Kendall <wkendall@sgi.com wrote: >> xfsrestore: unable to construct a file system handle for /mnt/sda3: >>> Das Argument ist ung�ltig >>> xfsrestore: Restore Status: ERROR > > "unable to construct a file system handle" - theres only one place > in the restore code that can come from - the path_to_fshandle call. > Is there a 32 bit userspace and 64 bit kernel on the machine where > xfsrestore is running? > > Its not clear to me what that code in xfsrestore is trying to do, > you may be able to just comment it out...?!? > > cheers. > > -- > Nathan > Oh yeah from this code: > /* effectively initialize libhandle on this filesystem by > * allocating a file system handle. this needs to be done > * before any open_by_handle() calls (and possibly other > * libhandle calls). > */ > if ( persp->a.dstdirisxfspr ) { > void *fshanp; > size_t fshlen=0; > > if(path_to_fshandle(persp->a.dstdir, &fshanp, &fshlen)) { > mlog( MLOG_NORMAL, > _("unable to construct a file " > "system handle for %s: %s\n"), > persp->a.dstdir, > strerror( errno )); IIRC, I think it wants an fd to use for the filesystem in handle ioctl calls. It caches it against the fsid in the handle. I don't think commenting out will work as it will stop the handle calls from working. If you could strace it then we could see what call was failing in path_to_fshandle(). path_to_fshandle... > fd = open(path, O_RDONLY); > if (fd < 0) > return -1; > > obj.path = path; > result = obj_to_handle(path, fd, XFS_IOC_PATH_TO_FSHANDLE, > obj, fshanp, fshlen); > if (result < 0) { > close(fd); > return result; So I guess either open failed or obj_to_handle failed. obj_to_handle... > hreq.path = obj.path; > } > > hreq.oflags = O_LARGEFILE; > hreq.ihandle = NULL; > hreq.ihandlen = 0; > hreq.ohandle = hbuf; > hreq.ohandlen = &handlen; > > ret = xfsctl(fspath, fsfd, opcode, &hreq); > if (ret) > return ret; --Tim ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 7:04 ` Timothy Shimmin @ 2008-07-22 10:51 ` Richard Hartmann 2008-07-22 10:52 ` Richard Hartmann 2008-07-23 0:19 ` Timothy Shimmin 0 siblings, 2 replies; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 10:51 UTC (permalink / raw) To: Timothy Shimmin; +Cc: Nathan Scott, Bill Kendall, xfs On Tue, Jul 22, 2008 at 09:04, Timothy Shimmin <tes@sgi.com> wrote: > If you could strace it then we could see what call was failing > in path_to_fshandle(). First with -ttt to get rid of a tty allocation error, then without: % cat root.xfs | ssh -ttt root@192.168.1.213 strace xfsrestore - /mnt/sda3 Password: tcgetattr: Invalid argument execve("/sbin/xfsrestore", ["xfsrestore", "-", "/mnt/sda3"], [/* 15 vars */]) = 0 brk(0) = 0x808c000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f84000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=187135, ...}) = 0 mmap2(NULL, 187135, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f56000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libuuid.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \20\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=12656, ...}) = 0 mmap2(NULL, 15440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f52000 mmap2(0xb7f55000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7f55000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libhandle.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=7144, ...}) = 0 mmap2(NULL, 10164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f4f000 mmap2(0xb7f51000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f51000 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\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\f\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=12820, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4e000 mmap2(NULL, 15680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f4a000 mmap2(0xb7f4d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7f4d000 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\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1356012, ...}) = 0 mmap2(NULL, 1361520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dfd000 mmap2(0xb7f44000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x147) = 0xb7f44000 mmap2(0xb7f47000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f47000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dfc000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dfc6f0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7f44000, 4096, PROT_READ) = 0 munmap(0xb7f56000, 187135) = 0 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=16969248, ...}) = 0 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7bfc000 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x321) = 0xb7f83000 brk(0) = 0x808c000 brk(0x80ad000) = 0x80ad000 close(3) = 0 getpid() = 5078 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 getcwd("/UNIONFS/root", 4096) = 14 stat64("/var/lib/xfsdump", 0xbf9e4d70) = -1 ENOENT (No such file or directory) stat64("/var/xfsdump", 0xbf9e4d10) = -1 ENOENT (No such file or directory) open("/dev/tty", O_RDWR|O_LARGEFILE) = 3 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f82000 write(1, "xfsrestore: using file dump (dri"..., 52xfsrestore: using file dump (drive_simple) strategy ) = 52 mmap2(NULL, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7bba000 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 write(1, "xfsrestore: version 2.2.45 (dump"..., 44xfsrestore: version 2.2.45 (dump format 3.0)) = 44 write(1, " - Running single-threaded\n", 27 - Running single-threaded ) = 27 time(NULL) = 1216723667 stat64("/mnt/sda3", {st_mode=S_IFDIR|0755, st_size=38, ...}) = 0 mkdir("/mnt/sda3/xfsrestorehousekeepingdir", 0700) = -1 EEXIST (File exists) open("/mnt/sda3/xfsrestorehousekeepingdir/state", O_RDWR|O_CREAT|O_LARGEFILE, 0600) = 4 fstat64(4, {st_mode=S_IFREG|0600, st_size=20480, ...}) = 0 mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb7f7d000 geteuid32() = 0 munmap(0xb7f7d000, 20480) = 0 ftruncate64(4, 20480) = 0 fstat64(4, {st_mode=S_IFREG|0600, st_size=20480, ...}) = 0 mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb7f7d000 statfs64("/mnt/sda3", 84, {f_type=0x58465342, f_bsize=4096, f_blocks=2201496, f_bfree=2200427, f_bavail=2200427, f_files=8816192, f_ffree=8816187, f_fsid={2051, 0}, f_namelen=255, f_frsize=4096}) = 0 open("/mnt/sda3", O_RDONLY|O_LARGEFILE) = 5 ioctl(5, 0xc01c5868, 0xbf9e4c1c) = -1 EINVAL (Invalid argument) close(5) = 0 open("/usr/share/locale/locale.alias", O_RDONLY) = 5 fstat64(5, {st_mode=S_IFREG|0644, st_size=2586, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7c000 read(5, "# Locale name alias data base.\n#"..., 2048) = 2048 read(5, "rean.euc \tko_KR.eucKR\nko_KR\t\tko_"..., 2048) = 538 read(5, "", 2048) = 0 close(5) = 0 munmap(0xb7f7c000, 4096) = 0 open("/usr/share/locale/de/LC_MESSAGES/libc.mo", O_RDONLY) = 5 fstat64(5, {st_mode=S_IFREG|0644, st_size=123187, ...}) = 0 mmap2(NULL, 123187, PROT_READ, MAP_PRIVATE, 5, 0) = 0xb7f5e000 close(5) = 0 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 5 fstat64(5, {st_mode=S_IFREG|0644, st_size=25700, ...}) = 0 mmap2(NULL, 25700, PROT_READ, MAP_SHARED, 5, 0) = 0xb7f57000 close(5) = 0 open("/usr/lib/gconv/ISO8859-15.so", O_RDONLY) = 5 read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\3\0\000"..., 512) = 512 fstat64(5, {st_mode=S_IFREG|0644, st_size=9480, ...}) = 0 mmap2(NULL, 12316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0xb7bb6000 mmap2(0xb7bb8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x1) = 0xb7bb8000 close(5) = 0 write(1, "xfsrestore: unable to construct "..., 94xfsrestore: unable to construct a file system handle for /mnt/sda3: Das Argument ist ung�ltig ) = 94 rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_IGN}, 8) = 0 write(1, "xfsrestore: Restore Status: ERRO"..., 34xfsrestore: Restore Status: ERROR ) = 34 exit_group(1) = ? Process 5078 detached Connection to 192.168.1.213 closed. ######################################### ######################################### ######################################### % cat root.xfs | ssh root@192.168.1.213 strace xfsrestore - /mnt/sda3 Password: execve("/sbin/xfsrestore", ["xfsrestore", "-", "/mnt/sda3"], [/* 13 vars */]) = 0 brk(0) = 0x808c000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f5f000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=187135, ...}) = 0 mmap2(NULL, 187135, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f31000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libuuid.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \20\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=12656, ...}) = 0 mmap2(NULL, 15440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f2d000 mmap2(0xb7f30000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7f30000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libhandle.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=7144, ...}) = 0 mmap2(NULL, 10164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f2a000 mmap2(0xb7f2c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f2c000 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\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\f\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=12820, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f29000 mmap2(NULL, 15680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f25000 mmap2(0xb7f28000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xb7f28000 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\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1356012, ...}) = 0 mmap2(NULL, 1361520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dd8000 mmap2(0xb7f1f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x147) = 0xb7f1f000 mmap2(0xb7f22000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f22000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dd7000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dd76f0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7f1f000, 4096, PROT_READ) = 0 munmap(0xb7f31000, 187135) = 0 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=16969248, ...}) = 0 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7bd7000 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x321) = 0xb7f5e000 brk(0) = 0x808c000 brk(0x80ad000) = 0x80ad000 close(3) = 0 getpid() = 5083 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 getcwd("/UNIONFS/root", 4096) = 14 stat64("/var/lib/xfsdump", 0xbfd418e0) = -1 ENOENT (No such file or directory) stat64("/var/xfsdump", 0xbfd41880) = -1 ENOENT (No such file or directory) open("/dev/tty", O_RDWR|O_LARGEFILE) = -1 ENXIO (No such device or address) dup(2) = 3 fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR) fstat64(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f5d000 _llseek(3, 0, 0xbfd413a8, SEEK_CUR) = -1 ESPIPE (Illegal seek) open("/usr/share/locale/locale.alias", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=2586, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f5c000 read(4, "# Locale name alias data base.\n#"..., 2048) = 2048 read(4, "rean.euc \tko_KR.eucKR\nko_KR\t\tko_"..., 2048) = 538 read(4, "", 2048) = 0 close(4) = 0 munmap(0xb7f5c000, 4096) = 0 open("/usr/share/locale/de/LC_MESSAGES/libc.mo", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=123187, ...}) = 0 mmap2(NULL, 123187, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7f3e000 close(4) = 0 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=25700, ...}) = 0 mmap2(NULL, 25700, PROT_READ, MAP_SHARED, 4, 0) = 0xb7f37000 close(4) = 0 open("/usr/lib/gconv/ISO8859-15.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\0p\3\0\000"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0644, st_size=9480, ...}) = 0 mmap2(NULL, 12316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0xb7f33000 mmap2(0xb7f35000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1) = 0xb7f35000 close(4) = 0 write(3, "/dev/tty: Kein passendes Ger\344t b"..., 68/dev/tty: Kein passendes Ger�t bzw. keine passende Adresse gefunden ) = 68 close(3) = 0 munmap(0xb7f5d000, 4096) = 0 fstat64(1, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 xfsrestore: using file dump (drive_simple) strategy mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f5d000 write(1, "xfsrestore: using file dump (dri"..., 52) = 52 mmap2(NULL, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7b95000 xfsrestore: version 2.2.45 (dump format 3.0)write(1, "xfsrestore: version 2.2.45 (dump"..., 44) = 44 - Running single-threaded write(1, " - Running single-threaded\n", 27) = 27 time(NULL) = 1216723678 stat64("/mnt/sda3", {st_mode=S_IFDIR|0755, st_size=38, ...}) = 0 mkdir("/mnt/sda3/xfsrestorehousekeepingdir", 0700) = -1 EEXIST (File exists) open("/mnt/sda3/xfsrestorehousekeepingdir/state", O_RDWR|O_CREAT|O_LARGEFILE, 0600) = 3 fstat64(3, {st_mode=S_IFREG|0600, st_size=20480, ...}) = 0 mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0xb7b90000 geteuid32() = 0 munmap(0xb7b90000, 20480) = 0 ftruncate64(3, 20480) = 0 fstat64(3, {st_mode=S_IFREG|0600, st_size=20480, ...}) = 0 mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0xb7b90000 statfs64("/mnt/sda3", 84, {f_type=0x58465342, f_bsize=4096, f_blocks=2201496, f_bfree=2200427, f_bavail=2200427, f_files=8816192, f_ffree=8816187, f_fsid={2051, 0}, f_namelen=255, f_frsize=4096}) = 0 open("/mnt/sda3", O_RDONLY|O_LARGEFILE) = 4 ioctl(4, 0xc01c5868, 0xbfd4178c) = -1 EINVAL (Invalid argument) close(4) = 0 xfsrestore: unable to construct a file system handle for /mnt/sda3: Das Argument ist ung�ltig write(1, "xfsrestore: unable to construct "..., 94) = 94 rt_sigaction(SIGCHLD, {SIG_IGN}, xfsrestore: Restore Status: ERROR {SIG_DFL}, 8) = 0 rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_IGN}, 8) = 0 write(1, "xfsrestore: Restore Status: ERRO"..., 34) = 34 exit_group(1) = ? Process 5083 detached Again, the German error message means 'argument invalid' Thanks, RIchard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 10:51 ` Richard Hartmann @ 2008-07-22 10:52 ` Richard Hartmann 2008-07-23 0:19 ` Timothy Shimmin 1 sibling, 0 replies; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 10:52 UTC (permalink / raw) To: Timothy Shimmin; +Cc: Nathan Scott, Bill Kendall, xfs On Tue, Jul 22, 2008 at 12:51, Richard Hartmann <richih.mailinglist@gmail.com> wrote: > write(3, "/dev/tty: Kein passendes Ger\344t b"..., 68/dev/tty: Kein > passendes Ger�t bzw. keine passende Adresse gefunden > ) = 68 'No suitable device found or address found.' ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 10:51 ` Richard Hartmann 2008-07-22 10:52 ` Richard Hartmann @ 2008-07-23 0:19 ` Timothy Shimmin 2008-07-23 11:39 ` Richard Hartmann 1 sibling, 1 reply; 16+ messages in thread From: Timothy Shimmin @ 2008-07-23 0:19 UTC (permalink / raw) To: Richard Hartmann; +Cc: Nathan Scott, Bill Kendall, xfs Richard Hartmann wrote: > On Tue, Jul 22, 2008 at 09:04, Timothy Shimmin <tes@sgi.com> wrote: >> If you could strace it then we could see what call was failing> in path_to_fshandle(). > First with -ttt to get rid of a tty allocation error, then without: > % cat root.xfs | ssh -ttt root@192.168.1.213 strace xfsrestore - /mnt/sda3 >From your output: > open("/mnt/sda3", O_RDONLY|O_LARGEFILE) = 4 > ioctl(4, 0xc01c5868, 0xbfd4178c) = -1 EINVAL (Invalid argument) > close(4) (I probably should have just asked for: # strace -o output -e trace=open,ioctl xfsrestore ...) > On Tue, Jul 22, 2008 at 12:49, Richard Hartmann > <richih.mailinglist@gmail.com> wrote: > >> > The Knoppix boot CD is am using to restore has 2.2.24-1, btw. > > Grml to the rescue.. I downloaded a grml iso, which has 2.2.45-1, > and was able to restore the image. > > Extremely annoying, as I spent quite some time poking various > options, thinking I had been doing something very basic very > wrong. I assume the issue has been fixed between .24 and .45. > > > Thanks again, > Richard Okay, my best guess is that you are trying to restore to a non-xfs filesystem. This was fixed again in 2.2.26 so that it would work on a non-xfs filesystem. Otherwise the xfs ioctl will be being called and get back an EINVAL as we saw in the strace. Personally, I can't remember why we are bothering with handle code in restore (in dump, yes, because of bulkstat but restore.... I vaguely remember a comment about optimitisation). Looking at the code (annotated version) in restore: wkendall |1.34 |master-melb:xfs-cmds:187436a| /* effectively initialize libhandle on this filesystem by wkendall |1.34 |master-melb:xfs-cmds:187436a| * allocating a file system handle. this needs to be done wkendall |1.34 |master-melb:xfs-cmds:187436a| * before any open_by_handle() calls (and possibly other wkendall |1.34 |master-melb:xfs-cmds:187436a| * libhandle calls). wkendall |1.34 |master-melb:xfs-cmds:187436a| */ wkendall |1.34 |master-melb:xfs-cmds:187436a| if ( persp->a.dstdirisxfspr ) { wkendall |1.34 |master-melb:xfs-cmds:187436a| void *fshanp; wkendall |1.34 |master-melb:xfs-cmds:187436a| size_t fshlen=0; wkendall |1.34 |master-melb:xfs-cmds:187436a| wkendall |1.34 |master-melb:xfs-cmds:187436a| if(path_to_fshandle(persp->a.dstdir, &fshanp, &fshlen)) { wkendall |1.34 |master-melb:xfs-cmds:187436a| mlog( MLOG_NORMAL, wkendall |1.34 |master-melb:xfs-cmds:187436a| _("unable to construct a file " wkendall |1.34 |master-melb:xfs-cmds:187436a| "system handle for %s: %s\n"), wkendall |1.34 |master-melb:xfs-cmds:187436a| persp->a.dstdir, wkendall |1.34 |master-melb:xfs-cmds:187436a| strerror( errno )); wkendall |1.34 |master-melb:xfs-cmds:187436a| return BOOL_FALSE; wkendall |1.34 |master-melb:xfs-cmds:187436a| } wkendall |1.34 |master-melb:xfs-cmds:187436a| /* libhandle has it cached, release this copy */ wkendall |1.34 |master-melb:xfs-cmds:187436a| free_handle(fshanp, fshlen); wkendall |1.34 |master-melb:xfs-cmds:187436a| } wkendall |1.34 |master-melb:xfs-cmds:187436a| ---------------------------- revision 1.34 date: 2005/02/10 02:14:17; author: wkendall.bonnie.engr.sgi.com; state: Exp; lines: +34 -26 modid: master-melb:xfs-cmds:187436a Fix a couple of spots in xfsrestore where XFS-specific calls were being made without first checking to see if the filesystem being restored is XFS. Merge of master:xfs-cmds:187436a by kenmcd. ---------------------------- xfsdump-2.2.26 (09 February 2005) - Fix xfsrestore so that it can restore to non-XFS filesystems again. --Tim ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-23 0:19 ` Timothy Shimmin @ 2008-07-23 11:39 ` Richard Hartmann 0 siblings, 0 replies; 16+ messages in thread From: Richard Hartmann @ 2008-07-23 11:39 UTC (permalink / raw) To: Timothy Shimmin; +Cc: Nathan Scott, Bill Kendall, xfs On Wed, Jul 23, 2008 at 02:19, Timothy Shimmin <tes@sgi.com> wrote: > Okay, my best guess is that you are trying to restore to a non-xfs > filesystem. This was fixed again in 2.2.26 so that it would work > on a non-xfs filesystem. > Otherwise the xfs ioctl will be being called and get back an EINVAL > as we saw in the strace. As I cancelled the first working xfsrestore (kept the strace in the command), re-mkfs-ed and then restored, there is no way to verify, but I am _sure_ it was a xfs partition. I did not even know you could restore to non-xfs so I would never try to do that (not that I would use anything else, anyway ;) Thanks for looking into this, Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 6:33 ` Nathan Scott 2008-07-22 7:04 ` Timothy Shimmin @ 2008-07-22 10:45 ` Richard Hartmann 2008-07-22 10:49 ` Richard Hartmann 1 sibling, 1 reply; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 10:45 UTC (permalink / raw) To: Nathan Scott; +Cc: Timothy Shimmin, Bill Kendall, xfs On Tue, Jul 22, 2008 at 08:33, Nathan Scott <nscott@aconex.com> wrote: > "unable to construct a file system handle" - theres only one place > in the restore code that can come from - the path_to_fshandle call. > Is there a 32 bit userspace and 64 bit kernel on the machine where > xfsrestore is running? The dump was created on a 32 bit system, is stored on a 32 bit system and I am trying to restore on (the first) 32 bit system, again. Both the backed-up & the storage system have Debian's 2.2.48-1 version of xfsdump. > Its not clear to me what that code in xfsrestore is trying to do, > you may be able to just comment it out...?!? I would like to avoid hacks like this if possible at all. That is asking for trouble, especially when the root file system is concerned :/ Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 10:45 ` Richard Hartmann @ 2008-07-22 10:49 ` Richard Hartmann 2008-07-22 12:00 ` Richard Hartmann 0 siblings, 1 reply; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 10:49 UTC (permalink / raw) To: Nathan Scott; +Cc: Timothy Shimmin, Bill Kendall, xfs On Tue, Jul 22, 2008 at 12:45, Richard Hartmann <richih.mailinglist@gmail.com> wrote: > Both the backed-up & the storage system have Debian's 2.2.48-1 > version of xfsdump. The Knoppix boot CD is am using to restore has 2.2.24-1, btw. Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: xfsrestore over ssh? 2008-07-22 10:49 ` Richard Hartmann @ 2008-07-22 12:00 ` Richard Hartmann 0 siblings, 0 replies; 16+ messages in thread From: Richard Hartmann @ 2008-07-22 12:00 UTC (permalink / raw) To: Nathan Scott; +Cc: Timothy Shimmin, Bill Kendall, xfs On Tue, Jul 22, 2008 at 12:49, Richard Hartmann <richih.mailinglist@gmail.com> wrote: > The Knoppix boot CD is am using to restore has 2.2.24-1, btw. Grml to the rescue.. I downloaded a grml iso, which has 2.2.45-1, and was able to restore the image. Extremely annoying, as I spent quite some time poking various options, thinking I had been doing something very basic very wrong. I assume the issue has been fixed between .24 and .45. Thanks again, Richard ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2008-07-23 11:38 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-07-21 20:17 xfsrestore over ssh? Richard Hartmann 2008-07-21 20:33 ` Bill Kendall 2008-07-22 3:02 ` Richard Hartmann 2008-07-22 3:59 ` Timothy Shimmin 2008-07-22 4:43 ` Richard Hartmann 2008-07-22 6:20 ` Donald Douwsma 2008-07-22 10:40 ` Richard Hartmann 2008-07-22 6:33 ` Nathan Scott 2008-07-22 7:04 ` Timothy Shimmin 2008-07-22 10:51 ` Richard Hartmann 2008-07-22 10:52 ` Richard Hartmann 2008-07-23 0:19 ` Timothy Shimmin 2008-07-23 11:39 ` Richard Hartmann 2008-07-22 10:45 ` Richard Hartmann 2008-07-22 10:49 ` Richard Hartmann 2008-07-22 12:00 ` Richard Hartmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox