[Bug 764744] Crashes when multiple udpsrc are created for each client on a shared media, misses tracking and cleanup
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Apr 15 06:27:53 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=764744
--- Comment #16 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
(In reply to Jake Foytik from comment #15)
> -- I've assumed that there can exist multiple unicast udpsrcs but only a
> single set of multicast udpsrcs (one for IPV4 and one for IPV6).
> - The multicast udpsrcs remain the same.
Correct
> - The unicast udpsrcs are now maintained in a hash table that uses the
> RTSPTransport as a key. It didn't look like there was any special logic
> required for handling IPV4 v. IPV6 except for the creation of the sockets,
> so the hash table can contain both types.
No special handling, correct
> - When unicast sockets are allocated, the udpsrcs are stored in the hash
> table. See the gst_rtsp_stream_allocate_udp_sockets() function.
> - When a client disconnects and the connection is unicast, we now cleanup
> the udpsrcs related to the RTSPTransport. See update_transport() function.
> - In the gst_rtsp_stream_leave_bin() function, all udpsrcs are now
> cleaned up.
Makes sense
> -- I've made some fundamental changes to the
> gst_rtsp_stream_allocate_udp_sockets() function that I think are correct,
> but you should verify. They include:
> - IPV6 unicast sockets were only allowed to be allocated one time, in
> the same manner as multicast. This is different for IPV4 unicast. I assumed
> that we wanted to allow multiple IPV6 unicast connections, so I removed the
> 'have_ipv6' check that would skip allocation.
Makes sense and is probably just an overlook. IPv4/6 should behave exactly the
same.
> - I changed the logic for calculating the return 'result'. Before, it
> performed 'result = have_ipv4 || have_ipv4_mcast || have_ipv6 ||
> have_ipv6_mcast'. This would return TRUE if a client was trying to create an
> IPV4 unicast connection and it failed to allocate the unicast udpsrcs, but a
> client had previously connected with IPV6 multicast successfully.
That part looked weird to me last time I looked too, so that fix is probably
fine :)
> Please review the patch and make recommendations. I'll make changes as
> needed.
A unit test would be nice to have
--
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