generic/499: add bfoster's alternate reproducer
diff mbox

Message ID 20180711164919.GD5703@magnolia
State New
Headers show

Commit Message

Darrick J. Wong July 11, 2018, 4:49 p.m. UTC
From: Darrick J. Wong <darrick.wong@oracle.com>

Add Brian Foster's alternate reproducer code for this problem so that we
increase the chances that one of them will reproduce the race problem.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 tests/generic/499 |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

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

Comments

Christoph Hellwig July 11, 2018, 5:29 p.m. UTC | #1
> +# bfoster/hch reproducer

It really is Brians.  I did just run it when he posted it :)

Otherwise looks fine:

Reviewed-by: Christoph Hellwig <hch@lst.de>
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Eryu Guan July 12, 2018, 2:47 a.m. UTC | #2
On Wed, Jul 11, 2018 at 09:49:19AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Add Brian Foster's alternate reproducer code for this problem so that we
> increase the chances that one of them will reproduce the race problem.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
>  tests/generic/499 |   19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/tests/generic/499 b/tests/generic/499
> index 99d6d308..e0b95871 100755
> --- a/tests/generic/499
> +++ b/tests/generic/499
> @@ -33,6 +33,7 @@ _require_xfs_io_command "fzero"
>  
>  rm -f $seqres.full
>  
> +# djwong's reproducer
>  _scratch_mkfs >>$seqres.full 2>&1
>  _scratch_mount
>  
> @@ -52,6 +53,24 @@ victim=$SCRATCH_MNT/a
>  touch $victim
>  $here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output || cat $tmp.output
>  
> +# bfoster/hch reproducer
> +_scratch_unmount
> +_scratch_mkfs_sized $((1024 * 1024 * 100)) >>$seqres.full 2>&1
> +_scratch_mount

This test uses a different fs setup (_scratch_mkfs_sized), and adds new
sub-test to an existing case, I think it really deserves a new test.

Thanks,
Eryu

> +
> +$XFS_IO_PROG -fc "pwrite 0 100m" -c fsync $SCRATCH_MNT/file >>$seqres.full 2>&1
> +rm -f $SCRATCH_MNT/file
> +
> +cat >> $tmp.fsxops << ENDL
> +truncate 0x0 0x1f0d6 0x380e1
> +write 0x1ad87 0x6c99 0x180d6
> +zero_range 0x14426 0xd3aa 0x21a20 keep_size
> +mapread 0x1f69a 0x2386 0x21a20
> +ENDL
> +
> +touch $victim
> +$here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output || cat $tmp.output
> +
>  echo "Silence is golden"
>  status=0
>  exit
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/tests/generic/499 b/tests/generic/499
index 99d6d308..e0b95871 100755
--- a/tests/generic/499
+++ b/tests/generic/499
@@ -33,6 +33,7 @@  _require_xfs_io_command "fzero"
 
 rm -f $seqres.full
 
+# djwong's reproducer
 _scratch_mkfs >>$seqres.full 2>&1
 _scratch_mount
 
@@ -52,6 +53,24 @@  victim=$SCRATCH_MNT/a
 touch $victim
 $here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output || cat $tmp.output
 
+# bfoster/hch reproducer
+_scratch_unmount
+_scratch_mkfs_sized $((1024 * 1024 * 100)) >>$seqres.full 2>&1
+_scratch_mount
+
+$XFS_IO_PROG -fc "pwrite 0 100m" -c fsync $SCRATCH_MNT/file >>$seqres.full 2>&1
+rm -f $SCRATCH_MNT/file
+
+cat >> $tmp.fsxops << ENDL
+truncate 0x0 0x1f0d6 0x380e1
+write 0x1ad87 0x6c99 0x180d6
+zero_range 0x14426 0xd3aa 0x21a20 keep_size
+mapread 0x1f69a 0x2386 0x21a20
+ENDL
+
+touch $victim
+$here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output || cat $tmp.output
+
 echo "Silence is golden"
 status=0
 exit