Hello Shawn,

it's now performing a sequential read of the volume, which will probably
take significantly more time for you than for me (where I was dealing
with an image of a 16GB SD card, stored on a recent mechanical SATA
disk).

I'm a bit confused by what happens while reading the "potential supers".
At first the blocks appear valid, then they are all "misplaced" (meaning
the bytenr field != the bytenr from which the block has been read, IOW
the block is most probably not part of btrfs structures, from what I
understand).  From the output before the "will attempt to find useful
trees" messages, it seems btrfsck is now doing a sequential read not
just of /dev/sde, but also every single block device ?

disk-io.c: try_emergency_tree_fixup() is probably now a bit too silent
for your use case at the moment. You might want to uncomment the
commented out fprintf there; this will make it very verbose (an extra
line per structure block) but will provide clues as to where on disk is
it working.

        -- Cyrille

Le jeudi 27 janvier 2011 à 01:18 -0500, Shawn Stricker a écrit :
> any chance of getting a little more informative output?
> I started the command at about 2250 Eastern and now at 0117 Eastern the 
> command is still running and all of the attached output happened in the first 
> few minutes (under 5).
> On Jan 26, 2011, at 2:46 AM, Cyrille Chépélov wrote:
> 
> > Le mardi 25 janvier 2011 à 23:38 -0500, Shawn Stricker a écrit :
> >> Not sure where you pulled your source from but a fresh checkout of either 
> >> master or next of 
> >> git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git 
> >> does not compile properly.
> >> They both fail with 
> >> 
> >> cc1: warnings being treated as errors
> >> disk-io.c: In function ‘btrfs_read_dev_super’:
> >> disk-io.c:937: error: format ‘%lu’ expects type ‘long unsigned int’, but 
> >> argument 4 has type ‘unsigned int’
> >> disk-io.c:957: error: implicit declaration of function ‘uuid_unparse’
> >> 
> >> am I patching/compiling from the wrong source or is there something I am 
> >> missing?
> > 
> > uh, I had been compiling with CFLAGS=-g, where the makefile specifies
> > "-O2 -Werror"
> > 
> > -Werror causes warnings to be treated as errors, which is a good thing
> > in a way (makes sure stuff as this gets caught :) )
> > 
> > fixes are:
> >     * line 937 (patched), should be %llu instead of %lu
> >     * line 957, there should be a prototype for uuid_unparse(), most
> > certainly by including <uuid/uuid.h>
> > 
> > please try this patch instead.
> > 
> > Thanks for the feedback!
> > 
> >     -- Cyrille
> > 
> >> On Jan 25, 2011, at 1:46 PM, Cyrille Chépélov wrote:
> >> 
> >>> Hello all,
> >>> 
> >>> Last Friday, the /var and /home partition on one of my appliances became
> >>> full. This should normally not be much of a problem, except that after
> >>> the incident, I had been unable to mount the partition back again.
> >>> 
> >>> The appliance runs 2.6.32 as provided by Debian during the last two
> >>> months. 
> >>> The rescue computer runs 2.6.37; both exhibited the same behaviour at
> >>> mount: an infinite loop-and-abort cycle (I unfortunately did not write
> >>> down the exact messages, but in a nutshell, there was not enough free
> >>> space to replay the log, so it aborted).
> >>> 
> >>> After pulling the SD card (yes) to break the loop, I ended up with a
> >>> corrupt file system. Any attempt to mount, debug or fsck (using
> >>> btrfs-tools 0.19+20100601 as shipped by Debian, or compiled from git
> >>> 1b444cd2e6ab8dcafdd) aborted with the following message:
> >>>   btrfs-debug-tree: disk-io.c:741: open_ctree_fd: Assertion `!(!
> >>> tree_root->node)' failed.
> >>> 
> >>> After much scavenging on the disk image, I finally managed to recover,
> >>> using the (dirty) patch attached here. Since apparently other people had
> >>> similar issues, I'm posting it in the hope it might be useful.
> >>> 
> >>>   -- Cyrille
> >>> 
> >>> PS: Chris, if btrfs-images of "before" and "after" my butcher fix would
> >>> be useful to you, just let me know. 
> >>> <scavenge.patch>
> >> 
> > 
> > <scavenge-2.patch>
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to