On 07/23/2013 09:59 AM, John Ferlan wrote:
Update based on recent run/failures seen
---
tests/.valgrind.supp | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/tests/.valgrind.supp b/tests/.valgrind.supp
index 10cc3c0..f04912d 100644
--- a/tests/.valgrind.supp
+++ b/tests/.valgrind.supp
@@ -75,3 +75,63 @@
...
obj:*/lib*/libc-2.*so*
}
+#
+# commandtest validates the various threaded commands. The
+# virThreadCreate() routine allocates and passes args to the
+# new thread which now owns the 'args' and thus cannot be free'd
+#
+{
+ commandtestLeak1
+ Memcheck:Leak
+ fun:calloc
+ fun:virAlloc
+ fun:virThreadCreate
+ fun:mymain
+ fun:virtTestMain
Can't we call VIR_FREE(args) in the forked process? Or is this one of
those inconsequential leaks right before we exec in the child process?
+}
+#
+# The Error code requires static memory that is never free'd
+# for thread local storage to store error message/data
+#
+{
+ commandtestLeak2
+ Memcheck:Leak
+ fun:calloc
+ fun:virAlloc
+ ...
+ fun:vir*LastError*
+ fun:virEventRunDefaultImpl
+ fun:virCommandThreadWorker
+ fun:virThreadHelper
+ fun:start_thread
+ fun:clone
I thought we had the ability to wire up destructors for thread local
storage, that gets called when the thread completes?
At any rate, since all of these suppressions are solely for test files,
we aren't masking leaks in libvirtd proper, so if it makes it easier to
spot the introduction of new leaks, I'm okay with this patch as-is.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org