|
|
619821 |
From 3d0fa39257aac5ee843c0f3e5e69703e299bb90c Mon Sep 17 00:00:00 2001
|
|
|
619821 |
From: Max Reitz <mreitz@redhat.com>
|
|
|
619821 |
Date: Mon, 13 Mar 2017 17:46:23 +0100
|
|
|
619821 |
Subject: [PATCH 12/24] qemu-iotests: Fix core dump suppression in test 039
|
|
|
619821 |
|
|
|
619821 |
RH-Author: Max Reitz <mreitz@redhat.com>
|
|
|
619821 |
Message-id: <20170313174629.28735-1-mreitz@redhat.com>
|
|
|
619821 |
Patchwork-id: 74281
|
|
|
619821 |
O-Subject: [RHEL-7.4 qemu-kvm PATCH 3/9] qemu-iotests: Fix core dump suppression in test 039
|
|
|
619821 |
Bugzilla: 1427176
|
|
|
619821 |
RH-Acked-by: Fam Zheng <famz@redhat.com>
|
|
|
619821 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
619821 |
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
619821 |
|
|
|
619821 |
From: Markus Armbruster <armbru@redhat.com>
|
|
|
619821 |
|
|
|
619821 |
The shell script attempts to suppress core dumps like this:
|
|
|
619821 |
|
|
|
619821 |
old_ulimit=$(ulimit -c)
|
|
|
619821 |
ulimit -c 0
|
|
|
619821 |
$QEMU_IO arg...
|
|
|
619821 |
ulimit -c "$old_ulimit"
|
|
|
619821 |
|
|
|
619821 |
This breaks the test hard unless the limit was zero to begin with!
|
|
|
619821 |
ulimit sets both hard and soft limit by default, and (re-)raising the
|
|
|
619821 |
hard limit requires privileges. Broken since it was added in commit
|
|
|
619821 |
dc68afe.
|
|
|
619821 |
|
|
|
619821 |
Could be fixed by adding -S to set only the soft limit, but I'm not
|
|
|
619821 |
sure how portable that is in practice. Simply do it in a subshell
|
|
|
619821 |
instead, like this:
|
|
|
619821 |
|
|
|
619821 |
(ulimit -c 0; exec $QEMU_IO arg...)
|
|
|
619821 |
|
|
|
619821 |
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
|
619821 |
Reviewed-by: Fam Zheng <famz@redhat.com>
|
|
|
619821 |
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
619821 |
(cherry picked from commit d530e342320d4db3c9522bfadc60a7bc8142343a)
|
|
|
619821 |
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
|
619821 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
619821 |
---
|
|
|
619821 |
tests/qemu-iotests/039 | 20 ++++++++------------
|
|
|
619821 |
tests/qemu-iotests/039.out | 3 +++
|
|
|
619821 |
tests/qemu-iotests/common.filter | 1 +
|
|
|
619821 |
3 files changed, 12 insertions(+), 12 deletions(-)
|
|
|
619821 |
|
|
|
619821 |
diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
|
|
|
619821 |
index 8bade92..1e50651 100755
|
|
|
619821 |
--- a/tests/qemu-iotests/039
|
|
|
619821 |
+++ b/tests/qemu-iotests/039
|
|
|
619821 |
@@ -46,6 +46,11 @@ _supported_proto generic
|
|
|
619821 |
_supported_os Linux
|
|
|
619821 |
_unsupported_qemu_io_options --nocache
|
|
|
619821 |
|
|
|
619821 |
+_no_dump_exec()
|
|
|
619821 |
+{
|
|
|
619821 |
+ (ulimit -c 0; exec "$@")
|
|
|
619821 |
+}
|
|
|
619821 |
+
|
|
|
619821 |
size=128M
|
|
|
619821 |
|
|
|
619821 |
echo
|
|
|
619821 |
@@ -66,10 +71,7 @@ echo "== Creating a dirty image file =="
|
|
|
619821 |
IMGOPTS="compat=1.1,lazy_refcounts=on"
|
|
|
619821 |
_make_test_img $size
|
|
|
619821 |
|
|
|
619821 |
-old_ulimit=$(ulimit -c)
|
|
|
619821 |
-ulimit -c 0 # do not produce a core dump on abort(3)
|
|
|
619821 |
-$QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
|
|
|
619821 |
-ulimit -c "$old_ulimit"
|
|
|
619821 |
+_no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _filter_qemu_io
|
|
|
619821 |
|
|
|
619821 |
# The dirty bit must be set
|
|
|
619821 |
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
|
|
|
619821 |
@@ -102,10 +104,7 @@ echo "== Opening a dirty image read/write should repair it =="
|
|
|
619821 |
IMGOPTS="compat=1.1,lazy_refcounts=on"
|
|
|
619821 |
_make_test_img $size
|
|
|
619821 |
|
|
|
619821 |
-old_ulimit=$(ulimit -c)
|
|
|
619821 |
-ulimit -c 0 # do not produce a core dump on abort(3)
|
|
|
619821 |
-$QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
|
|
|
619821 |
-ulimit -c "$old_ulimit"
|
|
|
619821 |
+_no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _filter_qemu_io
|
|
|
619821 |
|
|
|
619821 |
# The dirty bit must be set
|
|
|
619821 |
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
|
|
|
619821 |
@@ -121,10 +120,7 @@ echo "== Creating an image file with lazy_refcounts=off =="
|
|
|
619821 |
IMGOPTS="compat=1.1,lazy_refcounts=off"
|
|
|
619821 |
_make_test_img $size
|
|
|
619821 |
|
|
|
619821 |
-old_ulimit=$(ulimit -c)
|
|
|
619821 |
-ulimit -c 0 # do not produce a core dump on abort(3)
|
|
|
619821 |
-$QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
|
|
|
619821 |
-ulimit -c "$old_ulimit"
|
|
|
619821 |
+_no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _filter_qemu_io
|
|
|
619821 |
|
|
|
619821 |
# The dirty bit must not be set since lazy_refcounts=off
|
|
|
619821 |
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
|
|
|
619821 |
diff --git a/tests/qemu-iotests/039.out b/tests/qemu-iotests/039.out
|
|
|
619821 |
index d25bf0b..af62da1 100644
|
|
|
619821 |
--- a/tests/qemu-iotests/039.out
|
|
|
619821 |
+++ b/tests/qemu-iotests/039.out
|
|
|
619821 |
@@ -11,6 +11,7 @@ No errors were found on the image.
|
|
|
619821 |
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
|
619821 |
wrote 512/512 bytes at offset 0
|
|
|
619821 |
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
619821 |
+./039: Aborted ( ulimit -c 0; exec "$@" )
|
|
|
619821 |
incompatible_features 0x1
|
|
|
619821 |
ERROR cluster 5 refcount=0 reference=1
|
|
|
619821 |
ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
|
|
|
619821 |
@@ -45,6 +46,7 @@ read 512/512 bytes at offset 0
|
|
|
619821 |
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
|
619821 |
wrote 512/512 bytes at offset 0
|
|
|
619821 |
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
619821 |
+./039: Aborted ( ulimit -c 0; exec "$@" )
|
|
|
619821 |
incompatible_features 0x1
|
|
|
619821 |
ERROR cluster 5 refcount=0 reference=1
|
|
|
619821 |
Rebuilding refcount structure
|
|
|
619821 |
@@ -58,6 +60,7 @@ incompatible_features 0x0
|
|
|
619821 |
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
|
|
619821 |
wrote 512/512 bytes at offset 0
|
|
|
619821 |
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
619821 |
+./039: Aborted ( ulimit -c 0; exec "$@" )
|
|
|
619821 |
incompatible_features 0x0
|
|
|
619821 |
No errors were found on the image.
|
|
|
619821 |
*** done
|
|
|
619821 |
diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter
|
|
|
619821 |
index 9c82c77..dcd246d 100644
|
|
|
619821 |
--- a/tests/qemu-iotests/common.filter
|
|
|
619821 |
+++ b/tests/qemu-iotests/common.filter
|
|
|
619821 |
@@ -150,6 +150,7 @@ _filter_win32()
|
|
|
619821 |
_filter_qemu_io()
|
|
|
619821 |
{
|
|
|
619821 |
_filter_win32 | sed -e "s/[0-9]* ops\; [0-9/:. sec]* ([0-9/.inf]* [EPTGMKiBbytes]*\/sec and [0-9/.inf]* ops\/sec)/X ops\; XX:XX:XX.X (XXX YYY\/sec and XXX ops\/sec)/" \
|
|
|
619821 |
+ -e "s/: line [0-9][0-9]*: *[0-9][0-9]*\( Aborted\)/:\1/" \
|
|
|
619821 |
-e "s/qemu-io> //g"
|
|
|
619821 |
}
|
|
|
619821 |
|
|
|
619821 |
--
|
|
|
619821 |
1.8.3.1
|
|
|
619821 |
|