xfs
[Top] [All Lists]

torture-testing xfsdump/xfsrestore

To: Linux XFS Mailing List <linux-xfs@xxxxxxxxxxx>
Subject: torture-testing xfsdump/xfsrestore
From: "Bernhard R. Erdmann" <be@xxxxxxxxxxx>
Date: Sat, 29 Sep 2001 20:37:28 +0200
Sender: owner-linux-xfs@xxxxxxxxxxx
Hi,

I did it again - torture-testing xfsdump/xfsrestore with Elisabeth D.
Zwicky's "Torture-testing Backup and Archive Programs: Things You Ought
to Know But Probably Would Rather Not".

The previous URL (http://reality.sgi.com/zwicky_neu/testdump.doc.html)
of that article is no longer available :-(

"Reality has left the building.
As of September 15, 2001, Reality.sgi.com has been discontinued."
[blabla]

So I provide an archived version of it on
http://berdmann.dyndns.org/zwicky/testdump.doc.html and for the other
files you might want to check http://berdmann.dyndns.org/zwicky/

First of all, I hacked xfsrestore/content.c to get rid of it's check for
filenames up to 255 char length to up to and including 255 char length:

/sbin/xfsdump: dumping non-directory files
/sbin/xfsrestore: reading directories
xfsrestore: content.c:2960: applydirdump: Assertion `namelen < 255'
failed.
/sbin/xfsdump: ending media file

Here's the patch:

--- /usr/src/xfsdump-test2/linux-2.4-xfs/cmd/xfsdump/restore/content.c
Tue Sep  4 06:31:55 2001
+++ /usr/src/xfsdump-test/linux-2.4-xfs/cmd/xfsdump/restore/content.c
Sat Sep 29 19:30:37 2001
@@ -2957,7 +2957,7 @@ applydirdump( drive_t *drivep,
                                        break;
                                }
                                namelen = strlen( dhdrp->dh_name );
-                               ASSERT( namelen < NAME_MAX );
+                               ASSERT( namelen <= NAME_MAX );
 
                                /* add this dirent to the tree.
                                 */
@@ -3075,7 +3075,7 @@ eatdirdump( drive_t *drivep,
                                break;
                        }
                        namelen = strlen( dhdrp->dh_name );
-                       ASSERT( namelen < NAME_MAX );
+                       ASSERT( namelen <= NAME_MAX );
                }
        }
 
At a first shot, xfsdump/xfsrestore do their jobs well:

# ~be/torture-new/torture.perl
First guess at max component length is 255
max path length appears to be 4095
Type a command line which will run a backup program on the dump test
directory: /sbin/xfsdump -J - /mnt/test1 | (cd /mnt/test2;
/sbin/xfsrestore - .)
Child 1 
/sbin/xfsrestore: version 3.0 - Running single-threaded
/sbin/xfsdump: version 3.0 - Running single-threaded
/sbin/xfsrestore: searching media for dump
/sbin/xfsdump: level 0 dump of apollo:/mnt/test1
/sbin/xfsdump: dump date: Sat Sep 29 19:39:35 2001
/sbin/xfsdump: session id: 1fa00278-09b1-4c37-bfb2-1d7d3e781843
/sbin/xfsdump: session label: ""
/sbin/xfsdump: ino map phase 1: skipping (no subtrees specified)
/sbin/xfsdump: ino map phase 2: constructing initial dump list
/sbin/xfsdump: ino map phase 3: skipping (no pruning necessary)
/sbin/xfsdump: ino map phase 4: skipping (size estimated in phase 2)
/sbin/xfsdump: ino map phase 5: skipping (only one dump stream)
/sbin/xfsdump: ino map construction complete
/sbin/xfsdump: estimated dump size: 1349696 bytes
/sbin/xfsdump: creating dump session media file 0 (media 0, file 0)
/sbin/xfsdump: dumping ino map
/sbin/xfsdump: dumping directories
/sbin/xfsrestore: examining media file 0
/sbin/xfsrestore: dump description: 
/sbin/xfsrestore: hostname: apollo
/sbin/xfsrestore: mount point: /mnt/test1
/sbin/xfsrestore: volume: /dev/vg01/test1
/sbin/xfsrestore: session time: Sat Sep 29 19:39:35 2001
/sbin/xfsrestore: level: 0
/sbin/xfsrestore: session label: ""
/sbin/xfsrestore: media label: ""
/sbin/xfsrestore: file system id: 0174fd6a-02a1-4cb0-85f3-90219087d7b6
/sbin/xfsrestore: session id: 1fa00278-09b1-4c37-bfb2-1d7d3e781843
/sbin/xfsrestore: media id: 7a04cd3d-ec20-4420-bf33-f44bcf459abb
/sbin/xfsrestore: searching media for directory dump
/sbin/xfsrestore: reading directories
/sbin/xfsdump: dumping non-directory files
/sbin/xfsrestore: directory post-processing
/sbin/xfsrestore: restoring non-directory files
/sbin/xfsrestore: WARNING: unable restore ino 131573 gen 4: relative
pathname too long (partial
DumpTestDir/longfilenames/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/244(4095)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx!)
/sbin/xfsdump: WARNING: failed to get bulkstat information for inode
786848
/sbin/xfsdump: ending media file
/sbin/xfsdump: media file size 2468312 bytes
/sbin/xfsdump: dump size (non-dir files) : 910512 bytes
/sbin/xfsdump: dump complete: 51 seconds elapsed
/sbin/xfsdump: Dump Status: SUCCESS
/sbin/xfsrestore: restore complete: 54 seconds elapsed
/sbin/xfsrestore: Restore Status: SUCCESS
Backup took 54.00 seconds of clock time and 0.00 seconds of cpu time

Just some missing files with pathnames > 4085 char length were found by
diff:

# ~be/torture-new/diff/diff -r -b -Q -X DumpTestDir
/mnt/test2/DumpTestDir > /tmp/res1 2>/tmp/res2

You can get the files res1 and res2 from
http://berdmann.dyndns.org/torture-testing/xfsdump/


<Prev in Thread] Current Thread [Next in Thread>
  • torture-testing xfsdump/xfsrestore, Bernhard R. Erdmann <=