Segfault in GStreamer application

Nicolas Dufresne nicolas.dufresne at collabora.com
Tue Nov 18 18:30:07 PST 2014


Le 2014-11-18 19:39, Steve Cookson a écrit :
> Hi Guys,
>
> I'm getting a segfault in gstreamer0.10 that is really defying my 
> attempts to fix it.
GStreamer 0.10 is not longer under-maintenance.
> ==3801==
> ==3801== Process terminating with default action of signal 11 (SIGSEGV)
> ==3801==  Access not within mapped region at address 0x5C
> ==3801==    at 0x4E85E41: Perl_gv_fetchmeth_pvn (in 
> /usr/lib/libperl.so.5.18.2)
> ==3801==    by 0x4E83AC0: Perl_gv_fetchmethod_pvn_flags (in 
> /usr/lib/libperl.so.5.18.2)
> ==3801==    by 0x685B43C: 
> wxPliVirtualCallback::FindCallback(interpreter*, char const*) const 
> (v_cback.cpp:30)
> ==3801==    by 0x6865649: wxPliApp::Yield(bool) (app.h:184)
> ==3801==    by 0x146F016B: wxGStreamerMediaBackend::SetupXOverlay() 
> (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_2_8_11_uni/lib/libwx_gtk2u_media-2.8.so.0.7.0)
> ==3801==    by 0x146F0265: gst_bus_sync_callback (in 
> /usr/local/lib/perl/5.18.2/Alien/wxWidgets/gtk_2_8_11_uni/lib/libwx_gtk2u_media-2.8.so.0.7.0)
> ==3801==    by 0x14929601: gst_bus_post (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==    by 0x14936EB2: gst_element_post_message (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==    by 0x14922A53: ??? (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==    by 0x14955384: ??? (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==    by 0x1491F9B7: ??? (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==    by 0x14929601: gst_bus_post (in 
> /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0)
> ==3801==  If you believe this happened as a result of a stack
> ==3801==  overflow in your program's main thread (unlikely but
> ==3801==  possible), you can try to increase the size of the
> ==3801==  main thread stack using the --main-stacksize= flag.
> ==3801==  The main thread stack size used in this run was 8388608.

This backtrace show a crash caused by code outside of GStreamer. Are you 
sure wxGStreamerMediaBackend::SetupXOverlay() is thread safe ? The 
synchronous callback is and will always be called from a seperate thread.

Nicolas


More information about the gstreamer-devel mailing list