pcp
[Top] [All Lists]

Re: [pcp] [RFC/PATCH] pmlogreduce frees invalid pointer

To: Nathan Scott <nathans@xxxxxxxxxx>
Subject: Re: [pcp] [RFC/PATCH] pmlogreduce frees invalid pointer
From: Arthur Kepner <akepner@xxxxxxx>
Date: Mon, 23 May 2011 13:29:49 -0700
Cc: jlim@xxxxxxx, pcp@xxxxxxxxxxx
In-reply-to: <1258205429.64731.1305800854853.JavaMail.root@xxxxxxxxxxxxxxxxxxxxxx>
References: <20110519010808.GW8325@xxxxxxx> <1258205429.64731.1305800854853.JavaMail.root@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
On Thu, May 19, 2011 at 08:27:34PM +1000, Nathan Scott wrote:
> ....
> Could you make that test case available?  (or better still, add a little
> pcpqa script to exercise the code - see QA tests 266,402,.. for example)
> 

I haven't checked in one of these tests before, but here's my 
guess as to what's needed.

I will get the magic archive to you (Nathan) off list, since 
it's very large (13MB).

Without the patch I sent last week, the new test results in:

1109*** glibc detected *** pmlogreduce: free(): invalid pointer: 
0x000000000099e020 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x75018)[0x7f05aec7c018]
/lib64/libc.so.6(cfree+0x6c)[0x7f05aec80f6c]
/usr/lib64/libpcp.so.3(__pmFreeResultValues+0x2d5)[0x7f05aef739f5]
/usr/lib64/libpcp.so.3(pmFreeResult+0x44)[0x7f05aef73a53]
/usr/lib64/libpcp.so.3(+0x2a493)[0x7f05aef8f493]
/usr/lib64/libpcp.so.3(+0x2b258)[0x7f05aef90258]
/usr/lib64/libpcp.so.3(__pmLogFetchInterp+0xdc4)[0x7f05aef9114b]
/usr/lib64/libpcp.so.3(__pmLogFetch+0x66)[0x7f05aef8cc28]
/usr/lib64/libpcp.so.3(pmFetch+0x116)[0x7f05aef733a8]
pmlogreduce[0x4029b2]
/lib64/libc.so.6(__libc_start_main+0xe6)[0x7f05aec25bc6]
pmlogreduce[0x4022a9]
....

This is on an x86_64 system:

# uname -a
Linux nada1 2.6.32.36-0.5-default #1 SMP 2011-04-14 10:12:31 +0200 x86_64 
x86_64 x86_64 GNU/Linux
with:
# rpm -qi glibc
Name        : glibc                        Relocations: (not relocatable)
Version     : 2.11.1                            Vendor: SUSE LINUX
Products GmbH, Nuernberg, Germany
Release     : 0.17.4                        Build Date: Wed 05 May 2010 
09:46:30 PM CDT
Install Date: Tue 03 May 2011 09:16:41 AM CDT      Build Host: beethoven
Group       : System/Libraries              Source RPM: 
glibc-2.11.1-0.17.4.src.rpm
Size        : 5165744                          License: BSD 3-Clause;
GPL v2 or later; LGPL v2.1 or later
Signature   : RSA/8, Wed 05 May 2010 09:48:47 PM CDT, Key ID e3a5c360307e3d54
Packager    : http://bugs.opensuse.org
URL         : http://www.gnu.org/software/libc/libc.html
Summary     : Standard Shared Libraries (from the GNU C Library)
Description :
The GNU C Library provides the most important standard libraries used
by nearly all programs: the standard C library, the standard math
library, and the POSIX thread library. A system is not functional
without these libraries.
Distribution: SUSE Linux Enterprise 11

--- 

 1109     |   26 ++++++++++++++++++++++++++
 1109.out |    1 +
 2 files changed, 27 insertions(+)

diff --git a/1109 b/1109
new file mode 100755
index 0000000..831460d
--- /dev/null
+++ b/1109
@@ -0,0 +1,26 @@
+#! /bin/sh
+# PCP QA Test No. 1109
+# pmlogreduce - try to induce:
+# *** glibc detected *** pmlogreduce: free(): invalid pointer:0x.....
+#
+# Copyright (c) 2011 SGI.  All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+status=0       # success is the default!
+$sudo rm -rf $tmp.*
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+# real QA test starts here
+cd src-oss # yes, this is really necessary
+pmlogreduce -A 1min -t 1hour pmlogreduce-badfree $tmp
+
+# success, all done
+exit
diff --git a/1109.out b/1109.out
new file mode 100644
index 0000000..fe8c21b
--- /dev/null
+++ b/1109.out
@@ -0,0 +1 @@
+QA output created by 1109

<Prev in Thread] Current Thread [Next in Thread>