[Bug 728772] New: Stuck in teardown.

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Apr 23 00:18:24 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=728772
  GStreamer | gst-plugins-base | unspecified

           Summary: Stuck in teardown.
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: goran.jonsson at axis.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=274931)
 View: https://bugzilla.gnome.org/attachment.cgi?id=274931
 Review: https://bugzilla.gnome.org/review?bug=728772&attachment=274931

gst-plugins-base patch

This when tunneling and drop-backlog parameter is FALSE.
This is related to tickets
https://bugzilla.gnome.org/show_bug.cgi?id=725898
and 
https://bugzilla.gnome.org/show_bug.cgi?id=728153

If reciving a teardown from remote when the watch queue is full the time
between 

gst_rtsp_watch_set_flushing (priv->watch, TRUE);
,,
gst_rtsp_watch_set_flushing (priv->watch, FALSE);

is not enough to make room in queue for teardown response
This since handle-teardown and the events that make it possible 
to get out of the situation, close and the possibility to write data
is handle by main loop.

This is backtrace from situation.
#0  0x7779e95c in __pthread_cond_timedwait (cond=0x73c11678, mutex=0x73c11798,
abstime=0x6df18af8) at pthread_cond_timedwait.c:168
#1  0x77864594 in g_cond_wait_until (cond=0x73c14ee0, mutex=0x73c14eb8,
end_time=<optimized out>) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gthread-posix.c:859
#2  0x77f935d0 in gst_rtsp_watch_wait_backlog (watch=0x73c13e28,
timeout=<optimized out>)
    at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-plugins-base/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:3692
#3  0x77b0695c in do_send_message (client=0x73c04b10, message=0x6df18c68,
close=<optimized out>, user_data=<optimized out>)
    at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-client.c:2665
#4  0x77b06bf0 in send_message (client=0x73c04b10, session=<optimized out>,
message=0x6df18c68, close=1)
    at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-client.c:476
#5  0x77b0bdc8 in handle_teardown_request (ctx=0x6df18c20, client=0x73c04b10)
at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-client.c:846
#6  handle_request (request=<optimized out>, client=0x73c04b10) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-client.c:2042
#7  gst_rtsp_client_handle_message (client=0x73c04b10, message=<optimized out>)
at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-client.c:2596
#8  0x77f9325c in gst_rtsp_source_dispatch_read (stream=<optimized out>,
watch=0x73c13e28)
    at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-plugins-base/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:3109
#9  0x77810244 in g_main_dispatch (context=0x73c116f0) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gmain.c:3061
#10 g_main_context_dispatch (context=0x73c116f0) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gmain.c:3637
#11 0x77810698 in g_main_context_iterate (context=0x73c116f0, block=1,
dispatch=1, self=<optimized out>) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gmain.c:3708
#12 0x77810d44 in g_main_loop_run (loop=0x73c10588) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gmain.c:3902
#13 0x77aea914 in do_loop (thread=0x73c01878) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/libs/gst-rtsp-server/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.c:329
#14 0x7784012c in g_thread_pool_thread_proxy (data=<optimized out>) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gthreadpool.c:309
#15 0x7783f4f8 in g_thread_proxy (data=0x5a1a90) at
/home/goranjn/FLASHDIR/DROPP_PACKETS_IMPORT_2/unpacked/libs/glib-IR2.36.4-1/glib/glib/gthread.c:798
#16 0x777995b8 in start_thread (arg=0x6df194b0) at pthread_create.c:310
#17 0x774c0cfc in __thread_start () from
target/mipsisa32r2el-axis-linux-gnu/lib/libc.so.6

Solution: To empty watchs queue when doing
gst_rtsp_watch_set_flushing (priv->watch, TRUE);

Attach patch
empty_queue_flushing.patch

-- 
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