[ovs-dev] [PATCH] tests: Disable glibc memory checking under glibc <= 2.11.
Gurucharan Shetty
shettyg at nicira.com
Thu Jul 10 21:32:56 UTC 2014
On Wed, Jul 9, 2014 at 3:45 PM, Ben Pfaff <blp at nicira.com> wrote:
> We noticed that the unit tests sometimes fail on XenServer inside glibc's
> memory checker, in the free_check() function. It turns out that the
> glibc memory checker in glibc 2.11 and earlier had an internal race that
> caused false positives in multithreaded programs.
>
> This commit avoids the problem by disabling the glibc memory checker in
> glibc 2.11 and earlier.
>
> VMware-BZ: #1267127
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
> tests/atlocal.in | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/tests/atlocal.in b/tests/atlocal.in
> index 2f816fc..825d289 100644
> --- a/tests/atlocal.in
> +++ b/tests/atlocal.in
> @@ -52,10 +52,24 @@ fi
> # Enable malloc debugging features.
> case `uname` in
> Linux)
> - MALLOC_CHECK_=2
> - MALLOC_PERTURB_=165
> - export MALLOC_CHECK_
> - export MALLOC_PERTURB_
> + MALLOC_PERTURB_=165; export MALLOC_PERTURB_
> +
> + # Before glibc 2.11, the feature enabled by MALLOC_CHECK_ was not
> + # thread-safe. See https://bugzilla.redhat.com/show_bug.cgi?id=585674 and
> + # in particular the patch attached there, which was applied to glibc CVS as
> + # "Restore locking in free_check." between 1.11 and 1.11.1.
> + vswitchd=$abs_top_builddir/vswitchd/ovs-vswitchd
> + glibc=`ldd $vswitchd | sed -n 's/^ libc\.[^ ]* => \([^ ]*\) .*/\1/p'`
> + glibc_version=`$glibc | sed -n '1s/.*version \([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/p'`
Does the above 2 lines work properly?
I get a blank line when I run the following on Ubuntu12.04:
ldd vswitchd/ovs-vswitchd | sed -n 's/^ libc\.[^ ]* => \([^ ]*\) .*/\1/p'
> + case $glibc_version in
> + 2.[0-9] | 2.1[01]) mcheck=disabled ;;
> + *) mcheck=enabled ;;
> + esac
> + if test $mcheck = enabled; then
> + MALLOC_CHECK_=2; export MALLOC_CHECK_
> + else
> + echo >&2 "glibc $glibc_version detected, disabling memory checking"
> + fi
> ;;
> FreeBSD)
> case `uname -r` in
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list