GNOME Bugzilla – Bug 737631
gst-rtsp-server deadlock while sending response over TCP
Last modified: 2014-09-30 11:28:34 UTC
We have discovered another deadlock in gst-rtsp-server when streaming over TCP. The deadlock occurs when the backlog is full and the appsink element is attempting to send data resulting the streaming thread blocking while holding the send lock. At the same time the RTSP client thread is receving a request requring a response, which can not be sent successfully because the send lock is already taken. In this situation the backlog can never be emptied because it is the same thread receving RTSP requests that is already blocked sending the response (since both sources are attached to the same mainloop). This has previously been discussed at #gstreamer with wtay.
Created attachment 287408 [details] [review] P
commit 404a80e38a508c13a9e9b7f9b1da70f3ccb2a77b Author: Sebastian Rasmussen <sebrn@axis.com> Date: Tue Sep 30 01:35:02 2014 +0200 rtsp-client: Remove backlog limit while processings requests If the backlog limit is kept two cases of deadlocks may be encountered when streaming over TCP. Without the backlog limit this deadlocks can not happen, at the expence of memory usage. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=737631