GNOME Bugzilla – Bug 641636
valgrind shows several leaks in gstreamer when running wine's conformance tests
Last modified: 2011-02-10 12:56:54 UTC
Created attachment 180199 [details] valgrind log Running wine's conformance tests shows several hundred leaks and other warnings in gstreamer code. I've attached the valgrind log, after installing debug symbols. This is on debian sid, x86: austin@debian:~/wine-git$ dpkg -l | grep gst ii gir1.0-gstreamer-0.10 0.10.30-1 Description: GObject introspection data for the GStreamer library ii gstreamer0.10-alsa 0.10.30-1 GStreamer plugin for ALSA ii gstreamer0.10-esd 0.10.24-1 GStreamer plugin for ESD ii gstreamer0.10-ffmpeg 0.10.10-1 FFmpeg plugin for GStreamer ii gstreamer0.10-ffmpeg-dbg 0.10.10-1 FFmpeg plugin for GStreamer (debug symbols) ii gstreamer0.10-nice 0.0.12-1 ICE library (GStreamer plugin) ii gstreamer0.10-plugins-bad 0.10.19-2+b2 GStreamer plugins from the "bad" set ii gstreamer0.10-plugins-bad-dbg 0.10.19-2+b2 GStreamer plugins from the "bad" set (debug symbols) ii gstreamer0.10-plugins-base 0.10.30-1 GStreamer plugins from the "base" set ii gstreamer0.10-plugins-base-dbg 0.10.30-1 GStreamer plugins from the "base" set ii gstreamer0.10-plugins-good 0.10.24-1 GStreamer plugins from the "good" set ii gstreamer0.10-plugins-good-dbg 0.10.24-1 GStreamer plugins from the "good" set ii gstreamer0.10-plugins-ugly 0.10.15-1 GStreamer plugins from the "ugly" set ii gstreamer0.10-plugins-ugly-dbg 0.10.15-1 GStreamer plugins from the "ugly" set (debug symbols) ii gstreamer0.10-pulseaudio 0.10.24-1 GStreamer plugin for PulseAudio ii gstreamer0.10-sdl 0.10.19-2+b2 GStreamer plugin for SDL output ii gstreamer0.10-tools 0.10.30-1 Tools for use with GStreamer ii gstreamer0.10-x 0.10.30-1 GStreamer plugins for X11 and Pango ii libgstfarsight0.10-0 0.0.20-2 Audio/Video communications framework: core library ii libgstreamer-plugins-base0.10-0 0.10.30-1 GStreamer libraries from the "base" set ii libgstreamer-plugins-base0.10-dev 0.10.30-1 GStreamer development files for libraries from the "base" set ii libgstreamer0.10-0 0.10.30-1 Core GStreamer libraries and elements ii libgstreamer0.10-0-dbg 0.10.30-1 Core GStreamer libraries and elements ii libgstreamer0.10-dev 0.10.30-1 GStreamer core development files ii python-gst0.10 0.10.19-1 generic media-playing framework (Python bindings)
Please run this with the gstreamer suppressions (common/gst.supp inside any gstreamer source tarball). It's also useful to set the environment variable G_SLICE=always_malloc. In general, the "possibly lost" chunks are not actually lost. Of the "definitely lost" chunks, I see only one that is likely due to GStreamer: 91 bytes in 4 blocks are definitely lost at malloc (vg_replace_malloc.c:236) by g_malloc (in /lib/libglib-2.0.so.0.2400.2) by g_memdup (in /lib/libglib-2.0.so.0.2400.2) by _priv_gst_registry_chunks_load_plugin (gstregistrychunks.c:775) by gst_registry_binary_read_cache (gstregistrybinary.c:587)
Created attachment 180205 [details] updated valgrind log I've set that variable, used the requested suppression file (from git), and set --show-possibly-lost=no. I also removed the Wine leaks (normally, I get about 416 leaks, 15 of which are in Wine). With those changes, I get 33 definitely lost warnings.
I still don't see much of anything that is due to GStreamer. It mostly looks like incorrect reference handling in calling code.
(In reply to comment #3) > I still don't see much of anything that is due to GStreamer. It mostly looks > like incorrect reference handling in calling code. I'll report it to Wine, thanks.
Closing this for now. Please re-open if specific leaks turn out to be in GStreamer libraries or plugins after all, while also making the test files and pipelines available. (Also, please run against git or at least the latest releases when investigating leaks)