public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: Andreas Gruenbacher <agruenba@redhat.com>, fstests@vger.kernel.org
Subject: Re: [PATCH 6/6] fsx: Add mechanism to replay failed operations
Date: Tue, 22 Dec 2015 15:48:42 -0600	[thread overview]
Message-ID: <5679C53A.4010905@sandeen.net> (raw)
In-Reply-To: <1450817636-11416-7-git-send-email-agruenba@redhat.com>

On 12/22/15 2:53 PM, Andreas Gruenbacher wrote:
> Create a $name.fsxops file next to $test.fsxlog.  When a test fails,
> dump the operations in the log into that file in a simple, parseable
> format like:
> 
>   fallocate 0x2e0f2 0xf04a 0x0 keep_size
>   truncate 0x0 0x11e00 0x0 *
>   write 0x73400 0x6c00 0x11e00
>   skip punch_hole 0x71539913 0xdf76 0x7a000 close_open
>   mapread 0x56000 0x16d08 0x7a000
> 
> Here, each operation is on a separate line. When the first word is
> "skip", the operation will be skipped.  The next parameters are offset,
> length, and the current file size, followed by optional flags like
> keep_size and clode_open.  A trailing asterisk indicates that the
> operation overlaps with the operation that has failed.
> 
> Add a --replay-ops option that allows to replay the operations recorded
> in such a $name.fsxops file.  (The log can be modified to easily narrow
> down which operations are causing the failure.)

fsx already accepts a seed parameter; with the seed can't we simply replay
the operations by specifying the same seed with -S?  And for narrowing down,
there's -D startingop and -N numops; doesn't that suffice?

And we already get an fsxlog like:

skipping zero size read
skipping insert range behind EOF
3 mapwrite	0x2e836 thru	0x3cba1	(0xe36c bytes)
4 insert	from 0x12000 to 0x15000, (0x3000 bytes)
5 punch	from 0xfb60 to 0x16c20, (0x70c0 bytes)
6 falloc	from 0x31645 to 0x38d1d (0x76d8 bytes)
7 punch	from 0x207c8 to 0x2224e, (0x1a86 bytes)
8 mapwrite	0xbcf1 thru	0x171ab	(0xb4bb bytes)
9 collapse	from 0x8000 to 0x13000, (0xb000 bytes)
...

from i.e. generic/075, but the cleanup function:

_cleanup()
{
    cd /
    rm -rf $TEST_DIR/fsx.* $tmp.*
}

removes it (even on a failure, I think, but I'm not certain).

Can't we just leverage what fsx already provides?  I'm not sure what this
patch adds on top of that, am I missing something?

Thanks,
-Eric

  reply	other threads:[~2015-12-22 21:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-22 20:53 [PATCH 0/6] fsx Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 1/6] fsx: Small improvements and fixes Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 2/6] fsx: Fix hex numbers in operation dump Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 3/6] fsx: Report number of successful operations Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 4/6] fsx: Generate test parameters in test() Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 5/6] fsx: Improve operation logging Andreas Gruenbacher
2015-12-22 20:53 ` [PATCH 6/6] fsx: Add mechanism to replay failed operations Andreas Gruenbacher
2015-12-22 21:48   ` Eric Sandeen [this message]
2015-12-22 22:12     ` Andreas Gruenbacher
2015-12-22 22:35       ` Eric Sandeen

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=5679C53A.4010905@sandeen.net \
    --to=sandeen@sandeen.net \
    --cc=agruenba@redhat.com \
    --cc=fstests@vger.kernel.org \
    /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