linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: david@fromorbit.com, darrick.wong@oracle.com
Cc: linux-ext4@vger.kernel.org, fstests@vger.kernel.org, xfs@oss.sgi.com
Subject: [PATCH 0/7] xfstests: fuzz ext4 and xfs
Date: Fri, 14 Aug 2015 18:52:01 -0700	[thread overview]
Message-ID: <20150815015200.4333.9278.stgit@birch.djwong.org> (raw)

Hi all,

This is a pile of fuzzing tests for ext4 and XFS filesystems.
Included are general fuzzers that create, populate, and fuzz a scratch
filesystem; and targeted fuzzers that create specific types of
metadata blocks and test the filesystem's reaction to the corruption.

Each fuzzing test has roughly the same structure: First, the scratch
device is formatted and populated with enough files and directories so
that the targeted metadata is created.  Next, the metadata block is
randomly mutated to some arbitrary degree.  Then, the filesystem is
mounted and exercised to see if the kernel will fling error codes back
to userspace without crashing.  After that, the repair tool is invoked
to fix all the damage.  Finally, the filesystem is remounted and
exercised again to ensure that the errors have gone away.

The first patch provides common code that can populate ext4 and XFS
filesystems containing (hopefully) every possible type of metadata
block, and a few other common code bits.

The second patch implements general fuzzers for ext4 and XFS.  A
scratch FS is created and populated with all types of metadata before
fuzzing begins.

The third and fourth patches implement targeted fuzzing for block
group, bitmap, file, extent, and directory metadata in ext4.

Patches 5-7 implement targeted fuzzing for AGs, btrees, file, extent,
and directory metadata in XFS.

I've tested these xfstests changes against the master branch as of
8/03.  The reflink tests will be dealt with separately.

The xfs fuzzers require xfsprogs with the August 2015 xfsprogs
patchbomb applied.  The ext4 fuzzers do not require patches if your
e2fsprogs are current.

Scary rewound github repo with everything attached:
https://github.com/djwong/xfstests

and for the xfsprogs patches:
https://github.com/djwong/xfsprogs

Comments and questions are, as always, welcome.

--D

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

             reply	other threads:[~2015-08-15  1:52 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-15  1:52 Darrick J. Wong [this message]
2015-08-15  1:52 ` [PATCH 1/7] common: add routines to fuzz filesystems Darrick J. Wong
2015-08-15  1:52 ` [PATCH 2/7] randomly fuzz XFS and ext4 filesystems Darrick J. Wong
2015-08-15  1:52 ` [PATCH 3/7] ext4: test block group metadata corruption checking and repair Darrick J. Wong
2015-08-15  1:52 ` [PATCH 4/7] ext4: test file/dir/symlink " Darrick J. Wong
2015-08-15  1:52 ` [PATCH 5/7] xfs: test allocation group " Darrick J. Wong
2015-08-15  1:52 ` [PATCH 6/7] xfs: test directory " Darrick J. Wong
2015-08-15  1:52 ` [PATCH 7/7] xfs: test file/symlink " Darrick J. Wong

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=20150815015200.4333.9278.stgit@birch.djwong.org \
    --to=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=xfs@oss.sgi.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).