From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdK92-0002x7-4x for qemu-devel@nongnu.org; Fri, 17 May 2013 08:52:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UdK8y-0001Re-Su for qemu-devel@nongnu.org; Fri, 17 May 2013 08:52:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5863) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdK8y-0001RJ-JE for qemu-devel@nongnu.org; Fri, 17 May 2013 08:52:20 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r4HCqJI1024743 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 17 May 2013 08:52:20 -0400 Message-ID: <51962802.90702@redhat.com> Date: Fri, 17 May 2013 09:52:18 -0300 From: Lucas Meneghel Rodrigues MIME-Version: 1.0 References: <1368780720-14852-1-git-send-email-stefanha@redhat.com> <87obcaaq4b.fsf@blackfin.pond.sub.org> <20130517100738.GF2342@redhat.com> <87hai198k7.fsf@blackfin.pond.sub.org> In-Reply-To: <87hai198k7.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] tests: set MALLOC_PERTURB_ to expose memory bugs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: qemu-devel@nongnu.org, Stefan Hajnoczi On 17/05/13 07:58 AM, Markus Armbruster wrote: > "Daniel P. Berrange" writes: > >> On Fri, May 17, 2013 at 11:54:12AM +0200, Markus Armbruster wrote: >>> Stefan Hajnoczi writes: >>> >>>> glibc wipes malloc(3) memory when the MALLOC_PERTURB_ environment >>>> variable is set. The value of the environment variable determines the >>>> bit pattern used to wipe memory. For more information, see >>>> http://udrepper.livejournal.com/11429.html. >>>> >>>> Set MALLOC_PERTURB_ for gtester and qemu-iotests. Note we always set >>>> the environment variable to 1 so the test is deterministic. Setting a >>>> random variable might expose more bugs but would be harder to reproduce. >>>> >>>> Both make check and qemu-iotests pass with MALLOC_PERTURB_ enabled. >>>> >>>> Signed-off-by: Stefan Hajnoczi >>>> --- >>>> Lucas noticed KVM autotest failures when enabling MALLOC_PERTURB_. By enabling >>>> it for in-tree test suites we can detect memory management errors earlier. >>>> >>>> tests/Makefile | 4 +++- >>>> tests/qemu-iotests/check | 2 +- >>>> 2 files changed, 4 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/tests/Makefile b/tests/Makefile >>>> index a307d5a..25f6d28 100644 >>>> --- a/tests/Makefile >>>> +++ b/tests/Makefile >>>> @@ -171,6 +171,7 @@ GCOV_OPTIONS = -n $(if $(V),-f,) >>>> $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y) >>>> $(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,) >>>> $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ >>>> + MALLOC_PERTURB_=1 \ >>>> gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@") >>>> $(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y); do \ >>>> echo Gcov report for $$f:;\ >>> >>> If you want punishment, why not go for extra punishment? >>> >>> MALLOC_PERTURB_=$(($RANDOM % 255 + 1)) >> >> That could lead to non-reproducable failures though. I think it is better >> to use a fixed value so that you're more likely to be able to reproduce >> the issue every time you run the tests. > > A fixed value misses failures. > > A random value is just as reproducible as a fixed one, simply use the > same value. Requires the value to be logged, of course. That's a pretty great idea, Markus. I'm going to implement it in virt-test, thanks!