[ovs-dev] [PATCH] tests: Disable glibc memory checking under glibc <= 2.11.
Ben Pfaff
blp at nicira.com
Thu Jul 10 21:37:38 UTC 2014
On Thu, Jul 10, 2014 at 02:32:56PM -0700, Gurucharan Shetty wrote:
> 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'
The character after ^ is a tab, not a space, does that make it work
for you?
If not, what does the output of ldd look like on Ubuntu?
More information about the dev
mailing list