xfs-masters
[Top] [All Lists]

[Bug 845] xfs_repair does not warn when marking entries as bad if namech

To: xfs-masters@xxxxxxxxxxx
Subject: [Bug 845] xfs_repair does not warn when marking entries as bad if namecheck fails
From: bugzilla-daemon@xxxxxxxxxxx
Date: Tue, 11 Aug 2009 11:38:08 -0500
Auto-submitted: auto-generated
In-reply-to: <bug-845-113@xxxxxxxxxxxxxxxx/bugzilla/>
References: <bug-845-113@xxxxxxxxxxxxxxxx/bugzilla/>
http://oss.sgi.com/bugzilla/show_bug.cgi?id=845





--- Comment #5 from Eric Sandeen <sandeen-xfs@xxxxxxxxxxx>  2009-08-11 11:37:27 
CST ---
(In reply to comment #4)
> (In reply to comment #3)
> > Hm maybe details of how xfs_metadump fails would be good.
> 
> root@conserveer:/home/rolek# xfs_metadump -w /dev/sdd1 /usr/sdd1_metadump
> xfs_db: metadump.c:470: generate_obfuscated_name: Assertion
> `xfs_da_hashname(newname, namelen) == hash' failed.
> /usr/sbin/xfs_metadump: line 31: 31268 Aborted                 xfs_db$DBOPTS 
> -F
> -i -p xfs_metadump -c "metadump$OPTS $2" $1
> 
> I'm still assuming this is because I ran it on a filesystem with errors on it.
> Or should it be able to handle that gracefully?

It's just trying to obfuscate a name in a way that the hash is the same.  The
"-o" option will disable this, and at least you should not hit this assert.  

However, I'd like to know which name didn't hash right, if you could patch it
and run something like (pseudopatch) (assuming my C string manipulation-fu
isn't too weak) and run it w/o "-o" we can see which name didn't hash right:


+               if (libxfs_da_hashname(newname, namelen) != hash) {
+                      char namebuf[NAME_MAX];
+
+                      snprintf(namebuf, namelen, name);
+                      namebuf[namelen] = "\0";
+                      printf("obfuscated name failed hash for %s", namebuf);
+               }
                ASSERT(libxfs_da_hashname(newname, namelen) == hash);

-- 
Configure bugmail: http://oss.sgi.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

<Prev in Thread] Current Thread [Next in Thread>