After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 749845 - Client have problem to find the teardown response.
Client have problem to find the teardown response.
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-rtsp-server
unspecified
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-05-25 15:24 UTC by Göran Jönsson
Modified: 2015-06-03 13:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gst-rtsp-server patch (1.70 KB, patch)
2015-05-25 15:24 UTC, Göran Jönsson
none Details | Review

Description Göran Jönsson 2015-05-25 15:24:55 UTC
Created attachment 303936 [details] [review]
gst-rtsp-server patch

During http tunneled rtsp, sometimes client miss a rtsp teardown response since it have started to get a packet and just received the first part of it.

This can happen if write_bytes in gst_rtsp_watch_write_data returns GST_RTSP_EINTR. Then the rest of that message ends up in backlog queue.
If we then receive a Teardown then backlog queue will be flushed and second part 
off message will be lost.

Solution is not flush during teardown. This flush during teardown was introduced to fix a deadlock that now is fixed in handle_request more generally by set backlog size to unlimited.
Comment 1 Wim Taymans 2015-06-03 13:24:02 UTC
commit 08e0c79cee11daf7872828c9c60e1b78b3f7d256
Author: Göran Jönsson <goranjn@axis.com>
Date:   Mon May 25 16:36:18 2015 +0200

    rtsp-client: No flush during Teardown.
    
    When calling gst_rtsp_watch_write_data in gstrtspconnection.c and
    backlog is empty it can happen that just a part of a message will be
    sent and rest is in backlog queue. If then flush during teardown
    just a part of message will be sent.This can lead to client miss
    teardown response since it expect to get the last part of message.
    
    The flushing during teardown was introduced to fix a deadlock that now
    is fixed more generally in handle_request by temporary  setting backlog
    size to unlimited.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=749845