[Bug 732640] Windows client disconnect behavior

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jul 9 09:23:45 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=732640
  GStreamer | gst-rtsp-server | 1.3.90

--- Comment #1 from Jake Foytik <jake.foytik at ipconfigure.com> 2014-07-09 16:23:43 UTC ---
On further inspection, the RTSPWatch is functioning properly. I am seeing the
closed() function of rtsp-client being called immediately as the connection is
dropped. However, I am still seeing udpsrc errors on the pipeline which
indirectly cause the server to crash.

Using the same test setup described above, when disconnecting 10 cameras
simultaneously from the rtsp-server it sometimes segfaults on the
g_source_destroy() call in the finish_unprepare() function. Here is the
sequence of events that lead to the crash:

 - Disconnect 10 clients
 - closed() function of rtsp-client is triggered which eventually calls
finish_unprepare.
 - while the unprepare functions are holding the state_lock mutex, an error
message is received from the pipeline and the bus_message() function waits to
get  a lock on state_lock.
 - finish_unprepare completes and sets the state to UNPREPARED, releases
state_lock
 - the error message is then handled by bus_message, resulting in the state
being set to ERROR
 - gst_rtsp_media_unprepare() is called again and sees the state is not already
UNPREPARED and continues to call finish_unprepare again which results in a
segfault.

Possible solutions:
 - Do not allow the rtsp-media state to transition from UNPREPARED to ERROR.
This would prevent finish_unprepare from being called multiple times.
 - Have the bus_message() function in rtsp-media ignore messages if the media
is in the UNPREPARED state.

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