linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kalpak Shah <kalpak@clusterfs.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Andreas Dilger <adilger@clusterfs.com>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	TheodoreTso <tytso@mit.edu>
Subject: Re: Random corruption test for e2fsck
Date: Fri, 13 Jul 2007 12:42:37 +0530	[thread overview]
Message-ID: <1184310757.4372.14.camel@garfield> (raw)
In-Reply-To: <20070712222426.GB1011@one.firstfloor.org>

On Fri, 2007-07-13 at 00:24 +0200, Andi Kleen wrote:
> On Thu, Jul 12, 2007 at 04:16:24PM -0600, Andreas Dilger wrote:
> > On Jul 12, 2007  13:09 +0200, Andi Kleen wrote:
> > > > "dd if=/dev/urandom bs=1k ..." than to spin in a loop getting 16-bit
> > > > random numbers from bash.  We would also be at the mercy of the shell
> > > > being identical on the user and debugger's systems.
> > > 
> > > With /dev/urandom you have the guarantee you'll never ever reproduce
> > > it again. 
> > 
> > That is kind of the point of this testing - getting new test images for
> > each user that runs "make check" or "make rpm".  I'm We also save the
> > generated image before e2fsck touches it so that it can be used for
> > debugging if needed.
> 
> If you seed a good pseudo RNG with the time (or even a few bytes from 
> /dev/urandom; although the time tends to work as well) you'll also effectively 
> get a new image every time.
> 
> But the advantage is if you print out the seed the image
> can be easily recreated just by re-running the fuzzer
> with the same seed. No need to ship potentially huge images
> around.
> 
> You can essentially compress your whole image into a single
> number this way.

Firstly the filesystem is populated with files from the e2fsprogs source
directory. The filesystem is also corrupted by copying blocks in the
filesystem to some arbitary locations within it.

	from=`get_random_location $NUM_BLKS`
	to=`get_random_location $NUM_BLKS`
	dd if=$IMAGE of=$IMAGE bs=1k count=$CORRUPTION_SIZE conv=notrunc skip=
$from seek=$to >> $OUT 2>&1

Then the filesystem also undergoes corruption with /dev/urandom. To be
able to recreate the exact same filesystem with the seed, the filesystem
would need to allocate the _same_ blocks and metadata on both the
clients and the testers machine, which is obviously not possible.

Thanks,
Kalpak.

> 
> -Andi

      reply	other threads:[~2007-07-13  7:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-10 13:07 Random corruption test for e2fsck Kalpak Shah
2007-07-10 14:58 ` Theodore Tso
2007-07-10 15:42   ` Eric Sandeen
2007-07-11  7:03   ` Kalpak Shah
     [not found]   ` <20070711094410.GM6417@schatzie.adilger.int>
2007-07-11 17:43     ` Theodore Tso
2007-07-12  5:15       ` Andreas Dilger
2007-07-12  5:52   ` Andreas Dilger
2007-07-10 15:47 ` Eric Sandeen
2007-07-11 16:03   ` Andreas Dilger
2007-07-11 15:20 ` Andi Kleen
2007-07-12  5:19   ` Andreas Dilger
2007-07-12 11:09     ` Andi Kleen
2007-07-12 22:16       ` Andreas Dilger
2007-07-12 22:24         ` Andi Kleen
2007-07-13  7:12           ` Kalpak Shah [this message]

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=1184310757.4372.14.camel@garfield \
    --to=kalpak@clusterfs.com \
    --cc=adilger@clusterfs.com \
    --cc=andi@firstfloor.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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).