xfs
[Top] [All Lists]

Re: xfs_repair crashing (versions 3.1.4 and 3.1.5)

To: Anisse Astier <anisse@xxxxxxxxx>
Subject: Re: xfs_repair crashing (versions 3.1.4 and 3.1.5)
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 4 May 2011 05:11:41 -0400
Cc: Eric Sandeen <sandeen@xxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20110422130920.7be686c6@xxxxxxxxxxxxxxxxx>
References: <BANLkTikh1i3aYgXNZut+AGT-1kz=aqv-Eg@xxxxxxxxxxxxxx> <20110419082705.GI23985@dastard> <20110419130737.45beb611@xxxxxxxxxxxxxxxxx> <4DB084CE.8020600@xxxxxxxxxxx> <20110422130920.7be686c6@xxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Apr 22, 2011 at 01:09:20PM +0200, Anisse Astier wrote:
> Yep, I figured that much, it just took me a while to get up & running
> another system capable of building xfsprogs.
> 
> Now that I have that, and that I commented the do_warn, xfs_repair is
> still running after the previous failing point:
> [???]
>         - agno = 17
> bad key in bmbt root (is 73434, would reset to 74194) in inode 2283178100 
> data fork
> bad fwd (right) sibling pointer (saw 145202888 should be NULLDFSBNO)
> bad data fork in inode 2283178100
> would have cleared inode 2283178100
>         - agno = 18
> [???] (ongoing)
> 
> Once this is done, I'll test with %llu instead of %u.
> 
> But please be patient, it's a 900GB filesystem (half-full) with just an 800
> MHz ARM9 processor doing the work, so xfs_repair takes hours to complete.
> Plus I won't have time to do many tests before next week.
> 
> To be continued.

Any updates?

In the meantime I cooked up a little patch (below) to add format string
checking to the repair-internal varargs printing helpers, which produces
a lot of warnings.  A lot of that is different underlying types for
fixes-size 64-bit types, but there's quite a few legit errors there as
well.


Index: xfsprogs-dev/repair/err_protos.h
===================================================================
--- xfsprogs-dev.orig/repair/err_protos.h       2011-04-22 12:45:25.018475622 
+0200
+++ xfsprogs-dev/repair/err_protos.h    2011-04-22 12:47:22.014508467 +0200
@@ -17,10 +17,14 @@
  */
 
 /* abort, internal error */
-void  __attribute__((noreturn)) do_abort(char const *, ...);
+void  __attribute__((noreturn)) do_abort(char const *, ...)
+       __attribute__((format(printf,1,2)));
 /* abort, system error */
-void  __attribute__((noreturn)) do_error(char const *, ...);
+void  __attribute__((noreturn)) do_error(char const *, ...)
+       __attribute__((format(printf,1,2)));
 /* issue warning */
-void do_warn(char const *, ...);
+void do_warn(char const *, ...)
+       __attribute__((format(printf,1,2)));
 /* issue log message */
-void do_log(char const *, ...);
+void do_log(char const *, ...)
+       __attribute__((format(printf,1,2)));

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