From: John Snow <jsnow@redhat.com>
To: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>,
qemu-devel@nongnu.org, qemu-block@nongnu.org
Cc: kwolf@redhat.com, den@openvz.org, vsementsov@virtuozzo.com,
mreitz@redhat.com
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v5 2/6] iotests: exclude killed processes from running under Valgrind
Date: Thu, 15 Aug 2019 20:40:34 -0400 [thread overview]
Message-ID: <45fed680-02ee-14de-f8f3-4c8a2f0c0c02@redhat.com> (raw)
In-Reply-To: <1563553816-148827-3-git-send-email-andrey.shinkevich@virtuozzo.com>
On 7/19/19 12:30 PM, Andrey Shinkevich wrote:
> The Valgrind tool fails to manage its termination when QEMU raises the
> signal SIGKILL in the multi-threaded process. The bug has been
> reported to the Valgrind maintainers and was registered as Bug 409141.
> Let's exclude such test cases from running under the Valgrind until
> new release of it because checking for the memory issues is covered by
> other test cases.
>
Link to the bug in the commit message, please:
https://bugs.kde.org/show_bug.cgi?id=409141
...Hey! It looks like they may have fixed it. However, we don't know if
the user has a properly fixed version of valgrind or not.
How long do we keep these workarounds in-tree?
> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
> ---
> tests/qemu-iotests/039 | 5 +++++
> tests/qemu-iotests/061 | 2 ++
> tests/qemu-iotests/137 | 1 +
> 3 files changed, 8 insertions(+)
>
> diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
> index 0d4e963..95115e2 100755
> --- a/tests/qemu-iotests/039
> +++ b/tests/qemu-iotests/039
> @@ -65,6 +65,7 @@ echo "== Creating a dirty image file =="
> IMGOPTS="compat=1.1,lazy_refcounts=on"
> _make_test_img $size
>
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "write -P 0x5a 0 512" \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> | _filter_qemu_io
> @@ -100,6 +101,7 @@ echo "== Opening a dirty image read/write should repair it =="
> IMGOPTS="compat=1.1,lazy_refcounts=on"
> _make_test_img $size
>
This seems like the sort of thing that's going to get forgotten about
quickly. It's not clear (if you're reading the test source) why we're
setting VALGRIND_QEMU="" before these invocations.
Is it possible to create some kind of _NO_VALGRIND() shim that has some
comment in it, like:
# Valgrind bug #409141 https://bugs.kde.org/show_bug.cgi?id=409141
# Until valgrind 3.16+ is ubiquitous, we must work around a hang in
# valgrind when issuing sigkill. Disable valgrind for this invocation.
VALGRIND_QEMU="" exec "$@"
(something like that.)
This way:
(1) The workaround is being clearly demonstrated as a bit of a hack
(2) The shim explains what the hack is for
(3) When we decide we no longer need the hack, we can pull it out of a
central location and easily grep to find callers of the shim.
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "write -P 0x5a 0 512" \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> | _filter_qemu_io
> @@ -118,6 +120,7 @@ echo "== Creating an image file with lazy_refcounts=off =="
> IMGOPTS="compat=1.1,lazy_refcounts=off"
> _make_test_img $size
>
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "write -P 0x5a 0 512" \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> | _filter_qemu_io
> @@ -151,6 +154,7 @@ echo "== Changing lazy_refcounts setting at runtime =="
> IMGOPTS="compat=1.1,lazy_refcounts=off"
> _make_test_img $size
>
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "reopen -o lazy-refcounts=on" \
> -c "write -P 0x5a 0 512" \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> @@ -163,6 +167,7 @@ _check_test_img
> IMGOPTS="compat=1.1,lazy_refcounts=on"
> _make_test_img $size
>
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "reopen -o lazy-refcounts=off" \
> -c "write -P 0x5a 0 512" \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 \
> diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061
> index d7dbd7e..5d0724c 100755
> --- a/tests/qemu-iotests/061
> +++ b/tests/qemu-iotests/061
> @@ -73,6 +73,7 @@ echo
> echo "=== Testing dirty version downgrade ==="
> echo
> IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img 64M
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "write -P 0x2a 0 128k" -c flush \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 | _filter_qemu_io
> $PYTHON qcow2.py "$TEST_IMG" dump-header
> @@ -107,6 +108,7 @@ echo
> echo "=== Testing dirty lazy_refcounts=off ==="
> echo
> IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img 64M
> +VALGRIND_QEMU="" \
> $QEMU_IO -c "write -P 0x2a 0 128k" -c flush \
> -c "sigraise $(kill -l KILL)" "$TEST_IMG" 2>&1 | _filter_qemu_io
> $PYTHON qcow2.py "$TEST_IMG" dump-header
> diff --git a/tests/qemu-iotests/137 b/tests/qemu-iotests/137
> index 0c3d2a1..a442fc8 100755
> --- a/tests/qemu-iotests/137
> +++ b/tests/qemu-iotests/137
> @@ -130,6 +130,7 @@ echo
>
> # Whether lazy-refcounts was actually enabled can easily be tested: Check if
> # the dirty bit is set after a crash
> +VALGRIND_QEMU="" \
> $QEMU_IO \
> -c "reopen -o lazy-refcounts=on,overlap-check=blubb" \
> -c "write -P 0x5a 0 512" \
>
next prev parent reply other threads:[~2019-08-16 0:41 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-19 16:30 [Qemu-devel] [PATCH v5 0/6] Allow Valgrind checking all QEMU processes Andrey Shinkevich
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 1/6] iotests: allow " Andrey Shinkevich
2019-08-15 22:49 ` [Qemu-devel] [Qemu-block] " John Snow
2019-08-25 15:26 ` Andrey Shinkevich
2019-08-27 19:56 ` John Snow
2019-08-28 15:04 ` Andrey Shinkevich
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 2/6] iotests: exclude killed processes from running under Valgrind Andrey Shinkevich
2019-08-16 0:40 ` John Snow [this message]
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 3/6] iotests: Add casenotrun report to bash tests Andrey Shinkevich
2019-08-16 0:44 ` [Qemu-devel] [Qemu-block] " John Snow
2019-08-16 20:33 ` Cleber Rosa
2019-08-25 13:03 ` Andrey Shinkevich
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 4/6] iotests: Valgrind fails with nonexistent directory Andrey Shinkevich
2019-08-16 0:55 ` [Qemu-devel] [Qemu-block] " John Snow
2019-08-25 15:24 ` Andrey Shinkevich
2019-08-27 19:45 ` John Snow
2019-08-28 15:12 ` Andrey Shinkevich
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 5/6] iotests: extended timeout under Valgrind Andrey Shinkevich
2019-08-16 0:58 ` [Qemu-devel] [Qemu-block] " John Snow
2019-07-19 16:30 ` [Qemu-devel] [PATCH v5 6/6] iotests: extend sleeping time " Andrey Shinkevich
2019-08-16 1:01 ` [Qemu-devel] [Qemu-block] " John Snow
2019-08-23 15:27 ` Vladimir Sementsov-Ogievskiy
2019-08-27 19:42 ` John Snow
2019-08-28 15:24 ` Andrey Shinkevich
2019-08-28 17:27 ` John Snow
2019-08-25 10:13 ` Andrey Shinkevich
2019-08-06 16:24 ` [Qemu-devel] [PATCH v5 0/6] Allow Valgrind checking all QEMU processes Andrey Shinkevich
2019-08-16 20:05 ` Cleber Rosa
2019-08-25 10:30 ` Andrey Shinkevich
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=45fed680-02ee-14de-f8f3-4c8a2f0c0c02@redhat.com \
--to=jsnow@redhat.com \
--cc=andrey.shinkevich@virtuozzo.com \
--cc=den@openvz.org \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@virtuozzo.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).