From: Hugo Mills <hugo@carfax.org.uk>
To: Chris Mason <chris.mason@oracle.com>
Cc: Yalonda Gishtaka <yalonda.gishtaka@gmail.com>,
linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: Honest timeline for btrfsck
Date: Thu, 18 Aug 2011 22:22:12 +0100 [thread overview]
Message-ID: <20110818212212.GA14473@carfax.org.uk> (raw)
In-Reply-To: <1313700115-sup-2457@shiny>
[-- Attachment #1: Type: text/plain, Size: 3039 bytes --]
On Thu, Aug 18, 2011 at 04:50:08PM -0400, Chris Mason wrote:
> I've been working non-stop on this. Currently fsck has four parts:
This all looks like great stuff. Can't wait to try it out...
One thing strikes me for purposes of automated testing and
regression testing: Do you have tools or techniques for breaking a
filesystem in specific ways?
> 1) mount -o recovery mode. I've posted smaller forms of these patches
> in the past that bypass log tree replay. The new versions have code to
> create stub roots for trees that can't be read (like the extent
> allocation tree) and will allow the mount to proceed.
I can see that this will deal with some kinds of breakage, like the
log tree being missing, but most of the other trees are kind of
important for minor things like finding your data. :)
How useful or reliable is it to ignore missing trees that aren't
the log tree? I'd have thought that if you were missing one of the 6
main trees, you'd have a pretty much unreadable FS.
> 2) fsck that scans for older roots. This takes advantage of older
> copies of metadata to look for consistent tree roots on disk. The
> downside is that it is currently very slow. I'm trying to speed it up
> by limiting the search to only the metadata block groups and a few other
> tricks.
If this is in decent shape, it's probably worth it to release it in
its current form anyway (and possibly request a moratorium on extra
patches until you've finished the optimisation). I suspect that
there's a number of people out there who wouldn't mind the speed
issues just to get a filesystem back.
> 3) fsck that fixes the extent allocation tree and the chunk tree. This
> is where I've been spending most of my time. The problem is that it
> tends to recover some filesystems and badly break others. While I'm
> fixing up the corner cases that work poorly, I'm adding an undo log to
> the fsck code so that you can get the FS back into its original state if
> you don't like the result of the fsck.
> 4) The rest of the corruptions can be dealt with fairly well from the
> kernel. I have a series of patches to make the extent allocation tree
> less strict about reference counts and other rules, basically allowing
> the FS to limp along instead of crash.
Is that going to be always-on, with stubs to highlight where
subsequent patches can add the requisite healing code in later
revisions, or as a mount flag like -o recovery?
> These four things together are basically my minimal set of features
> required for fedora and our own internal projects at Oracle to start
> treating us as production filesystem.
>
> There are always bugs to fix, and I have #1 and #2 mostly ready. I had
> hoped to get #1 out the door before I left on vacation and I still might
> post it tonight.
Hugo.
--
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
--- "You know, the British have always been nice to mad people." ---
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 190 bytes --]
next prev parent reply other threads:[~2011-08-18 21:22 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-03 6:57 Honest timeline for btrfsck Erik Jensen
2011-08-03 9:09 ` Jan Schmidt
2011-08-03 20:53 ` Chris Mason
2011-08-15 14:22 ` Francesco Riosa
2011-08-17 15:19 ` Dave
2011-08-18 1:09 ` Yalonda Gishtaka
2011-08-18 20:50 ` Chris Mason
2011-08-18 21:22 ` Hugo Mills [this message]
2011-08-26 0:39 ` Yalonda Gishtaka
2011-08-21 13:58 ` Maciej Marcin Piechotka
2011-08-25 15:06 ` Michael Cronenworth
2011-09-01 19:14 ` Michael Cronenworth
2011-09-01 20:20 ` Hugo Mills
2011-09-01 20:24 ` Michael Cronenworth
2011-09-01 20:34 ` Hugo Mills
2011-09-10 10:09 ` Martin Steigerwald
2011-09-13 18:01 ` Jeff Putney
2011-10-05 6:16 ` Chris Mason
2011-10-05 13:59 ` Jeff Putney
2011-10-05 14:58 ` Chris Mason
2011-10-06 15:31 ` Jeff Putney
2011-10-06 20:30 ` Andi Kleen
2011-10-06 20:33 ` Jeff Mahoney
2011-10-06 20:56 ` Francesco Riosa
2011-10-07 14:50 ` Josef Bacik
2011-10-07 15:22 ` Dave
2011-10-11 21:21 ` Francesco Riosa
2011-10-12 13:53 ` Josef Bacik
2011-10-13 12:57 ` Francesco Riosa
2011-10-13 13:02 ` Josef Bacik
2011-10-06 20:52 ` Randy Barlow
2011-10-06 23:20 ` Yalonda Gishtaka
2011-10-06 23:29 ` Chris Samuel
2011-10-07 4:30 ` Roman Mamedov
2011-10-07 2:25 ` Chester
2011-10-07 19:10 ` Asdo
2011-10-07 19:29 ` cwillu
2011-10-07 20:19 ` Diego Calleja
2011-10-08 21:13 ` Asdo
2011-10-09 1:19 ` Fajar A. Nugraha
2011-10-07 20:50 ` Helmut Hullen
2011-10-10 12:59 ` Chris Mason
2011-10-07 2:50 ` Chris Mason
2011-10-07 4:45 ` Jeff Mahoney
2011-10-07 13:40 ` Jeff Putney
2011-10-07 14:48 ` Josef Bacik
2011-10-07 15:58 ` Jeff Putney
2011-10-07 16:08 ` Josef Bacik
2011-10-07 17:07 ` Jeff Putney
2011-10-07 18:23 ` cwillu
2011-10-07 21:16 ` Jeff Putney
2011-10-10 12:55 ` Chris Mason
2011-10-13 11:28 ` Chris Samuel
2011-10-13 11:37 ` Hugo Mills
2011-10-07 15:39 ` Mike
2011-10-07 17:27 ` Gour-Gadadhara Dasa
2011-10-12 14:41 ` Martin Steigerwald
2011-10-12 18:57 ` Jeff Putney
2011-10-12 19:53 ` Martin Steigerwald
2011-10-12 22:47 ` Jeff Putney
2011-10-13 5:56 ` Jeff Mahoney
2011-10-13 15:51 ` Jeff Putney
2011-10-17 10:49 ` Chris Samuel
2011-10-31 10:53 ` David Summers
2011-11-30 10:19 ` Clemens Eisserer
2011-12-02 20:05 ` Jeff Putney
2012-01-06 23:03 ` Danny Piccirillo
2011-09-09 23:01 ` Yalonda Gishtaka
2011-09-23 13:51 ` Erik Jensen
2011-09-27 14:42 ` Jeff Putney
2011-09-27 18:00 ` Clemens Eisserer
2011-10-04 21:20 ` Jeff Putney
2012-01-17 15:07 ` David Summers
2012-01-18 1:13 ` Chris Mason
2012-03-28 6:15 ` Danny Piccirillo
2012-03-28 9:36 ` Duncan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110818212212.GA14473@carfax.org.uk \
--to=hugo@carfax.org.uk \
--cc=chris.mason@oracle.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=yalonda.gishtaka@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).