GNOME Bugzilla – Bug 749845
Client have problem to find the teardown response.
Last modified: 2015-06-03 13:24:02 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.
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