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 <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Darrick J. Wong
2018-07-03 21:50:53 -07:00
committed by Eryu Guan
parent 2c14233d91
commit beae6dead9
4 changed files with 30 additions and 5 deletions
+6
View File
@@ -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
+6
View File
@@ -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
+8 -1
View File
@@ -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
+10 -4
View File
@@ -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"