[Bug 732226] Races when sessions time out

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jul 1 05:50:50 PDT 2014


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

Wim Taymans <wim.taymans> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |wim.taymans at gmail.com
         Resolution|                            |FIXED
   Target Milestone|HEAD                        |1.4.0

--- Comment #3 from Wim Taymans <wim.taymans at gmail.com> 2014-07-01 12:50:46 UTC ---
I reworked it slightly. The signal is now on the session, because that's the
one emitting the signal. The signal is emitted when the session is removed from
the pool (not only when it expired) so you get the same effect when filtering
the sessions on the client.

If the session was shared between multiple client objects, they would override
the "gst-rtsp-expired-handler" data on the session. I changed it so that there
is only one handler on the configured session pool.

Please check if that also works for you.

commit 5e2afcefdda5066641c01d243444c4f670054de0
Author: Wim Taymans <wtaymans at redhat.com>
Date:   Tue Jul 1 14:41:14 2014 +0200

    client: protect sessions with lock

    Protect the list of sessions with the lock.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732226

commit fe081e73015dc269d585f4be3efbc0d93ead128b
Author: Wim Taymans <wtaymans at redhat.com>
Date:   Tue Jul 1 12:13:47 2014 +0200

    Client: keep a ref to the session

    Don't just keep a weak ref to the session objects but use a hard ref. We
    will be notified when a session is removed from the pool (expired) with
    the new session-removed signal.
    Don't automatically close the RTSP connection when all the sessions of
    a client are removed, a client can continue to operate and it can create
    a new session if it wants. If you want to remove the client from the
    server, you have to use gst_rtsp_server_client_filter() now.

    Based on patch from Ognyan Tonchev <ognyan.tonchev at axis.com>

    See https://bugzilla.gnome.org/show_bug.cgi?id=732226

commit 964ca3c98842c5dd7d640b81bc018c0a6687c4ef
Author: Wim Taymans <wtaymans at redhat.com>
Date:   Mon Jun 30 15:14:34 2014 +0200

    session-pool: add session-removed signal

    Add a signal to be notified when a session is removed from the pool.

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