[Bug 797289] New: dispatch write never ends

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Oct 16 08:26:32 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=797289

            Bug ID: 797289
           Summary: dispatch write never ends
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-rtsp-server
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: goran.jonsson at axis.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 373939
  --> https://bugzilla.gnome.org/attachment.cgi?id=373939&action=edit
gst-rtsp-server patch

When sending JPEG (much data) tunneled it can sometimes happen that the
dispatch write never ends. This will cause the dispatch read no never be
called.

The reason for this is to be find in on_message_sent in file rtsp-stream.

When sending data with gst_rtsp_watch_write_data(gstrtspconnection.c) sometimes
the data is queued. When data is later sent by gst_rtsp_source_dispatch_write
it also call the callback on_message_sent  .

..
watch->funcs.message_sent (watch, watch->write_id, watch->user_data);
..

In on_message_sent if there are more data that can be sent it will be sent (in
dispath write context) and this is queued then dispatc write finds more data in
queue and call on_message_sent again. This can go on for a long period of time.
Since dispatch write is never ending dispatch read can't run. This way the
server 
don't able to detect that remote is sending teardown.

I attach a patch that introduce an idle source to break this chain.

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