[Bug 648199] New: pad: potential deadlock / crash when freeing cache
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Apr 19 05:10:10 PDT 2011
https://bugzilla.gnome.org/show_bug.cgi?id=648199
GStreamer | gstreamer (core) | git
Summary: pad: potential deadlock / crash when freeing cache
Classification: Platform
Product: GStreamer
Version: git
OS/Version: All
Status: UNCONFIRMED
Severity: blocker
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: havard.graff at tandberg.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=186272)
View: https://bugzilla.gnome.org/attachment.cgi?id=186272
Review: https://bugzilla.gnome.org/review?bug=648199&attachment=186272
patch
We have had this callstack lately:
libglib-2.0-0.dll!g_logv(const char * log_domain=0x74fd853c,
GLogLevelFlags log_level=G_LOG_LEVEL_ERROR, const char * format=0x74fd8ec8,
char * args1=0x0332e914) Line 554 + 0x8 bytes C
libglib-2.0-0.dll!g_log(const char * log_domain=0x74fd853c, GLogLevelFlags
log_level=G_LOG_LEVEL_ERROR, const char * format=0x74fd8ec8, ...) Line 599 +
0x15 bytes C
libgthread-2.0-0.dll!g_mutex_free_errorcheck_impl(_GMutex *
mutex=0x03747460, const unsigned long magic=0xf8e18ad7, char * const
location=0x6ddeabb8) Line 179 + 0x1b bytes C
libglib-2.0-0.dll!g_static_mutex_free(_GMutex * * mutex=0x02924450) Line
1388 + 0x21 bytes C
libglib-2.0-0.dll!g_static_rec_mutex_free(_GStaticRecMutex *
mutex=0x02924450) Line 1627 + 0x9 bytes C
libgstreamer-0.10-0.dll!gst_pad_finalize(_GObject * object=0x02925370)
Line 461 + 0xc bytes C
libgobject-2.0-0.dll!g_object_unref(void * _object=0x02925370) Line 2726
+ 0x10 bytes C
libgstreamer-0.10-0.dll!gst_object_unref(void * object=0x02925370) Line
338 + 0x9 bytes C
libgstreamer-0.10-0.dll!pad_free_cache(_GstPadPushCache *
cache=0x028e7220) Line 4598 + 0xb bytes C
> libgstreamer-0.10-0.dll!gst_pad_push(_GstPad * pad=0x029215b8, _GstBuffer * buffer=0x028965d8) Line 4746 + 0x9 bytes C
libgstreamer-0.10-0.dll!gst_proxy_pad_do_chain(_GstPad * pad=0x02922538,
_GstBuffer * buffer=0x028965d8) Line 171 + 0xd bytes C
libgstreamer-0.10-0.dll!gst_pad_push(_GstPad * pad=0x02895360, _GstBuffer
* buffer=0x028965d8) Line 4709 + 0x15 bytes C
libgstrtpmanager.dll!gst_rtp_session_send_rtcp(_RTPSession *
sess=0x028ea530, _RTPSource * src=0x03688650, _GstBuffer * buffer=0x028965d8,
int eos=0x00000000, void * user_data=0x028e91c8) Line 1065 + 0xd bytes C
libgstrtpmanager.dll!rtp_session_on_timeout(_RTPSession * sess=0x028ea530,
unsigned __int64 current_time=0x00000d5b4710c822, unsigned __int64
ntpnstime=0x30bca2f8816a4a00, unsigned __int64 running_time=0x00000d5b4710d72c)
Line 3378 + 0x58 bytes C
libgstrtpmanager.dll!rtcp_thread(_GstRtpSession * rtpsession=0x028e91c8)
Line 853 + 0x21 bytes C
libglib-2.0-0.dll!g_thread_create_proxy(void * data=0x00a3d050) Line 1955
+ 0x10 bytes C
libgthread-2.0-0.dll!g_thread_proxy(void * data=0x028cb320) Line 509 +
0x10 bytes C
As you can see, the pad_free_cache is trying to free a mutex that is being
held. The solution is simply to unlock that lock (stream-lock) before freeing
the cache.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list