From beae6dead91f61aaa58480e20e6e7d2f6a34870e Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Tue, 3 Jul 2018 21:50:53 -0700 Subject: [PATCH] generic/{279, 28[1-3]}: hide SIGBUS reporting from golden output These four tests check that mmap'd cow writes fail when the filesystem goes down. For regular filesystems the msync reports EIO, but if quotas are enabled on xfs the write itself terminates xfs_io with a SIGBUS. We don't care how the write fails, so don't let the SIGBUS report escape to the golden output. Signed-off-by: Darrick J. Wong Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- tests/generic/279 | 6 ++++++ tests/generic/281 | 6 ++++++ tests/generic/282 | 9 ++++++++- tests/generic/283 | 14 ++++++++++---- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/tests/generic/279 b/tests/generic/279 index 1355c641..af699144 100755 --- a/tests/generic/279 +++ b/tests/generic/279 @@ -66,8 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 $XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ -c "msync -s 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null _dmerror_load_working_table _dmerror_unmount _dmerror_mount diff --git a/tests/generic/281 b/tests/generic/281 index 75c4b39a..75deab7c 100755 --- a/tests/generic/281 +++ b/tests/generic/281 @@ -66,8 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 $XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ -c "msync -s 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null echo "Clean up the mess" _dmerror_unmount diff --git a/tests/generic/282 b/tests/generic/282 index aea7ce58..44ffe278 100755 --- a/tests/generic/282 +++ b/tests/generic/282 @@ -66,7 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table -$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 +$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" \ + -c "mwrite -S 0x63 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null _dmerror_load_working_table rm -rf $testdir/file2 >> $seqres.full 2>&1 _dmerror_unmount diff --git a/tests/generic/283 b/tests/generic/283 index 79caddb5..84a1666a 100755 --- a/tests/generic/283 +++ b/tests/generic/283 @@ -67,10 +67,16 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table -urk=$($XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ - -c "msync -s 0 $filesize" $testdir/file2 2>&1) -echo $urk >> $seqres.full -echo "$urk" | grep -q "error" || _fail "mwrite did not fail" +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 +$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ + -c "msync -s 0 $filesize" $testdir/file2 2>&1 +ENDL +bash $tmp.run > $tmp.output 2>&1 +cat $tmp.output >> $seqres.full +grep -q error $tmp.output || _fail "mwrite did not fail" _dmerror_load_working_table echo "Rewrite" -- 2.30.2