[Bug 692323] New: rtsp-client: "rollback" do not destroy the rtsp watch

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jan 22 12:11:12 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=692323
  GStreamer | gst-rtsp-server | 0.10.x

           Summary: rtsp-client: "rollback" do not destroy the rtsp watch
    Classification: Platform
           Product: GStreamer
           Version: 0.10.x
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-rtsp-server
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: aleix at oblong.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=234135)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=234135)
rtsp client connection segfault

Bug 685220 patch seems to do the right thing for destroying the client rtsp
connection watch.

   commit 13e1b15da1fc0c04cf1816863febaeeb11ad5ea1

But under stress tests of the server (multiple clients connecting and
disconnecting simultaneously) we have ran into segfaults multiple times (see
attachment).

Before, after closing the connection the watch was not available anymore.
However, with the new code, when we close the connection the watch is still
running, so we might be using the connection when we should not.

I can think of two situations:

- Bad implemented client that after TEARDOWN immediately sends some data. In
handle_teardown_request we close the connection but the watch still runs.

- A client session expires so we close the connection for that session but the
watch still runs. If the client decides to send some data at that point we hit
the problem again.

So, I think the previous implementation is safer. The new one only works if the
client closes the connection properly, but does not take into account corner
cases.

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