summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
m---------common0
-rw-r--r--gst/pygstminiobject.c8
-rw-r--r--testsuite/Makefile.am4
-rw-r--r--testsuite/gstpython.supp80
-rw-r--r--testsuite/python.supp156
6 files changed, 249 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a3b320..66ab013 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-10-07 Edward Hervey <edward@fluendo.com>
+
+ * gst/pygstminiobject.c: (pygstminiobject_register_wrapper),
+ (pygstminiobject_new), (pygstminiobject_dealloc):
+ Comments to better track the creation/destruction of PyGstMiniObject
+ Fixed naming (gst.GstMiniObject => gst.MiniObject)
+ * testsuite/python.supp:
+ Updated python specific valgrind suppressions to latest version and
+ added x86_64 cases
+ * testsuite/gstpython.supp:
+ Series of suppressions for errors/leaks not solvable within gst-python
+ * testsuite/Makefile.am:
+ Added gstpython.supp
+
2005-10-07 Thomas Vander Stichele <thomas at apestaart dot org>
* configure.ac:
diff --git a/common b/common
-Subproject fb4bd52a0a6e882bd8eb0ca836edd94d3fcaea4
+Subproject eb0dd118a086dd4aa405d3871131839d8130624
diff --git a/gst/pygstminiobject.c b/gst/pygstminiobject.c
index 0cf69f0..d785995 100644
--- a/gst/pygstminiobject.c
+++ b/gst/pygstminiobject.c
@@ -145,6 +145,8 @@ pygstminiobject_register_wrapper (PyObject *self)
GST_DEBUG ("inserting self %p in the table for object %p", self, obj);
state = pyg_gil_state_ensure ();
g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self);
+ GST_DEBUG ("There are now %d elements in the hash table",
+ g_hash_table_size (_miniobjs));
pyg_gil_state_release (state);
}
@@ -205,6 +207,8 @@ pygstminiobject_new (GstMiniObject *obj)
GST_DEBUG ("inserting self %p in the table for object %p", self, obj);
state = pyg_gil_state_ensure ();
g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self);
+ GST_DEBUG ("There are now %d elements in the hash table",
+ g_hash_table_size (_miniobjs));
pyg_gil_state_release (state);
}
@@ -225,6 +229,8 @@ pygstminiobject_dealloc(PyGstMiniObject *self)
GST_DEBUG ("removing self %p from the table for object %p", self,
self->obj);
g_assert (g_hash_table_remove (_miniobjs, (gpointer) self->obj));
+ GST_DEBUG ("There are now %d elements in the hash table",
+ g_hash_table_size (_miniobjs));
gst_mini_object_unref(self->obj);
}
GST_DEBUG ("setting self %p -> obj to NULL", self);
@@ -367,7 +373,7 @@ static PyGetSetDef pygstminiobject_getsets[] = {
PyTypeObject PyGstMiniObject_Type = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
- "gst.GstMiniObject", /* tp_name */
+ "gst.MiniObject", /* tp_name */
sizeof(PyGstMiniObject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 4fdc70d..d3a6dcb 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -40,7 +40,7 @@ check-verbose: testhelper.la
@VERBOSE=yes PYTHONPATH=$(top_builddir):$(top_builddir)/gst/.libs:`pwd`:$(top_srcdir):$(PYTHONPATH) $(PYTHON) $(srcdir)/runtests.py
@rm -fr *.pyc
-EXTRA_DIST = $(TESTS) common.py runtests.py test-object.h python.supp
+EXTRA_DIST = $(TESTS) common.py runtests.py test-object.h python.supp gstpython.supp
if HAVE_VALGRIND
check-valgrind:
@@ -52,6 +52,7 @@ endif
GSTSUPP = $(top_srcdir)/common/gst.supp
PYTHONSUPP = $(top_srcdir)/testsuite/python.supp
+GSTPYTHONSUPP = $(top_srcdir)/testsuite/gstpython.supp
# valgrind any given test_x.py by running make test_x.valgrind
%.valgrind: %
@@ -59,6 +60,7 @@ PYTHONSUPP = $(top_srcdir)/testsuite/python.supp
$(VALGRIND_PATH) -q \
--suppressions=$(GSTSUPP) \
--suppressions=$(PYTHONSUPP) \
+ --suppressions=$(GSTPYTHONSUPP) \
--tool=memcheck --leak-check=yes --trace-children=yes \
$(PYTHON) \
$* 2>&1 | tee valgrind.log
diff --git a/testsuite/gstpython.supp b/testsuite/gstpython.supp
new file mode 100644
index 0000000..2f4641b
--- /dev/null
+++ b/testsuite/gstpython.supp
@@ -0,0 +1,80 @@
+{
+ pthread leak
+ Memcheck:Leak
+ fun:calloc
+ fun:allocate_dtv
+ fun:_dl_allocate_tls*
+}
+
+{
+ pthread leak 2
+ Memcheck:Leak
+ fun:memalign
+ fun:_dl_allocate_tls*
+}
+
+{
+ popt leak
+ Memcheck:Leak
+ fun:malloc
+ fun:nss_parse_service_list
+ fun:__nss_database_lookup
+ obj:*
+ obj:*
+ fun:getpwuid_r@@GLIBC_2.2.5
+ fun:g_get_any_init_do
+ fun:g_get_home_dir
+ fun:init_post
+ fun:init_popt_callback
+}
+
+{
+ pygobject init leak
+ Memcheck:Leak
+ fun:calloc
+ fun:g_malloc0
+ fun:type_node_*
+ fun:type_node_*
+ fun:*
+ fun:*
+ fun:g_type_init*
+ fun:initgobject
+}
+
+{
+ borked pthread creation
+ Memcheck:Param
+ write(buf)
+ fun:__pthread_initialize_manager
+ fun:pthread_create@@GLIBC_2.2.5
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gst_task_start
+}
+
+{
+ borked pthread creation 2
+ Memcheck:Param
+ write(buf)
+ fun:pthread_create@@GLIBC_2.2.5
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gst_task_start
+}
+
+{
+ memory loss when creating thread from gst_task_start
+ Memcheck:Leak
+ fun:malloc
+ fun:__pthread_initialize_manager
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gst_task_start
+}
diff --git a/testsuite/python.supp b/testsuite/python.supp
index f8e5caa..6426674 100644
--- a/testsuite/python.supp
+++ b/testsuite/python.supp
@@ -29,6 +29,12 @@
}
{
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
+ Memcheck:Value8
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
Memcheck:Cond
fun:Py_ADDRESS_IN_RANGE
@@ -41,12 +47,24 @@
}
{
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
+ Memcheck:Addr8
+ fun:PyObject_Free
+}
+
+{
ADDRESS_IN_RANGE/Invalid read of size 4
Memcheck:Value4
fun:PyObject_Free
}
{
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
+ Memcheck:Value8
+ fun:PyObject_Free
+}
+
+{
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
Memcheck:Cond
fun:PyObject_Free
@@ -59,15 +77,27 @@
}
{
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
+ Memcheck:Addr8
+ fun:PyObject_Realloc
+}
+
+{
ADDRESS_IN_RANGE/Invalid read of size 4
Memcheck:Value4
fun:PyObject_Realloc
}
{
- ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
- Memcheck:Cond
- fun:PyObject_Realloc
+ ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
+ Memcheck:Value8
+ fun:PyObject_Realloc
+}
+
+{
+ ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+ Memcheck:Cond
+ fun:PyObject_Realloc
}
###
@@ -84,6 +114,118 @@
}
+{
+ Avoid problem in libc on gentoo
+ Memcheck:Cond
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+}
+
+{
+ Avoid problem in glibc on gentoo
+ Memcheck:Addr8
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libc-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_open
+ obj:/lib/libdl-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libdl-2.3.4.so
+ fun:dlopen
+}
+
+{
+ Avoid problem in glibc on gentoo
+ Memcheck:Addr8
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libc-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_open
+ obj:/lib/libdl-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libdl-2.3.4.so
+ fun:dlopen
+}
+
+{
+ Avoid problem in glibc on gentoo
+ Memcheck:Cond
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libc-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_open
+ obj:/lib/libdl-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libdl-2.3.4.so
+ fun:dlopen
+}
+
+{
+ Avoid problem in glibc on gentoo
+ Memcheck:Cond
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libc-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_open
+ obj:/lib/libdl-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/libdl-2.3.4.so
+ fun:dlopen
+}
+
+{
+ Avoid problems w/readline doing a putenv and leaking on exit
+ Memcheck:Leak
+ fun:malloc
+ fun:xmalloc
+ fun:sh_set_lines_and_columns
+ fun:_rl_get_screen_size
+ fun:_rl_init_terminal_io
+ obj:/lib/libreadline.so.4.3
+ fun:rl_initialize
+ fun:setup_readline
+ fun:initreadline
+ fun:_PyImport_LoadDynamicModule
+ fun:load_module
+ fun:import_submodule
+ fun:load_next
+ fun:import_module_ex
+ fun:PyImport_ImportModuleEx
+}
+
+{
+ Mysterious leak that seems to deal w/pthreads
+ Memcheck:Leak
+ fun:calloc
+ obj:/lib/ld-2.3.4.so
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}
+
+{
+ Mysterious leak that seems to deal w/pthreads
+ Memcheck:Leak
+ fun:memalign
+ obj:/lib/ld-2.3.4.so
+ fun:_dl_allocate_tls
+ fun:__pthread_initialize_minimal
+}
+
###
### These occur from somewhere within the SSL, when running
### test_socket_sll. They are too general to leave on by default.
@@ -214,11 +356,3 @@
}
-# some extra lxml specific (?) suppressions..
-
-{
- Test
- Memcheck:Param
- sigaction(act)
- fun:__libc_sigaction
-}