[Bug 687090] New: IPv6 <-> IPv4 mismatch when subscribing to multicast (send)

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 29 01:22:26 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=687090
  GStreamer | gst-plugins-good | git

           Summary: IPv6 <-> IPv4 mismatch when subscribing to multicast
                    (send)
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: marc.leeman at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This bug has IMO more to do with GLib, but since it is triggered in GStreamer,
I'm entering it here for tracking. I'll enter one for GLib too.

I'm running GNU/Debian wheezy/sid.

Debian is running in IPv6 completely; while providing compatibility with an
IPv4 network.

As such, the sockets that get created are IPv6 by default.

Since the move to GSocket in GStreamer in 1.0; a mismatch is triggered in the
GSocket and GInetAddress classes and an assertion creates a block.

A (workaround) is to force creation of IPv4 sockets; but this is not really an
option since it forces IPv4 on the higher application levels.

[marc at eee1215n ~]$ GST_DEBUG=*udpsink*:5 gst-launch-1.0 fakesrc ! udpsink
host=239.1.2.3 port=1234
0:00:00.107637954 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1002:gst_multiudpsink_add_internal:<GstUDPSink at 0x1b2c880>
adding client on host localhost, port 5004
0:00:00.109436578 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:404:create_client:<GstUDPSink at 0x1b2c880> IP address for host
localhost is 127.0.0.1
0:00:00.109549442 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1026:gst_multiudpsink_add_internal:<GstUDPSink at 0x1b2c880> add
client with host localhost, port 5004
0:00:00.109592184 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1036:gst_multiudpsink_add_internal:<GstUDPSink at 0x1b2c880>
added client on host localhost, port 5004
0:00:00.109697296 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1076:gst_multiudpsink_remove:<udpsink0> found 1 clients with
host localhost, port 5004
0:00:00.109738292 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1083:gst_multiudpsink_remove:<udpsink0> remove client with
host localhost, port 5004
0:00:00.109786832 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1002:gst_multiudpsink_add_internal:<udpsink0> adding client
on host 239.1.2.3, port 5004
0:00:00.109857931 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:404:create_client:<udpsink0> IP address for host 239.1.2.3 is
239.1.2.3
0:00:00.109926375 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1026:gst_multiudpsink_add_internal:<udpsink0> add client with
host 239.1.2.3, port 5004
0:00:00.109964788 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1036:gst_multiudpsink_add_internal:<udpsink0> added client on
host 239.1.2.3, port 5004
0:00:00.110023804 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1076:gst_multiudpsink_remove:<udpsink0> found 1 clients with
host 239.1.2.3, port 5004
0:00:00.110060401 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1083:gst_multiudpsink_remove:<udpsink0> remove client with
host 239.1.2.3, port 5004
0:00:00.110105937 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1002:gst_multiudpsink_add_internal:<udpsink0> adding client
on host 239.1.2.3, port 1234
0:00:00.110169074 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:404:create_client:<udpsink0> IP address for host 239.1.2.3 is
239.1.2.3
0:00:00.110235353 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1026:gst_multiudpsink_add_internal:<udpsink0> add client with
host 239.1.2.3, port 1234
0:00:00.110388306 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:1036:gst_multiudpsink_add_internal:<udpsink0> added client on
host 239.1.2.3, port 1234
Setting pipeline to PAUSED ...
0:00:00.111204262 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:878:gst_multiudpsink_start:<udpsink0> Initialising the
sockets
0:00:00.111248821 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:880:gst_multiudpsink_start:<udpsink0> creating sockets
0:00:00.111325995 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:881:gst_multiudpsink_start:<udpsink0> creating IPV6 sockets
0:00:00.111687564 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:892:gst_multiudpsink_start:<udpsink0> have socket 0x1b348f0
0:00:00.111734218 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:931:gst_multiudpsink_start:<udpsink0> have udp buffer of
212992 bytes
0:00:00.111780942 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:823:gst_multiudpsink_configure_client:<udpsink0> configuring
client 0x1b16b00
0:00:00.111816072 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:826:gst_multiudpsink_configure_client:<udpsink0> we have a
multicast client 0x1b16b00
0:00:00.111854694 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:829:gst_multiudpsink_configure_client:<udpsink0> autojoining
group 239.1.2.3
0:00:00.111886961 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:831:gst_multiudpsink_configure_client:<udpsink0> used_socket
0x1b348f0
0:00:00.111919227 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:832:gst_multiudpsink_configure_client:<udpsink0> multi_iface
(nil)
0:00:00.112040961 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:833:gst_multiudpsink_configure_client:<udpsink0>
g_inet_address_get_family  2
0:00:00.112075672 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:834:gst_multiudpsink_configure_client:<udpsink0>
g_socket_get_family 10
0:00:00.112108428 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:835:gst_multiudpsink_configure_client:<udpsink0>
G_SOCKET_FAMILY_INVALID 0
0:00:00.112140834 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:836:gst_multiudpsink_configure_client:<udpsink0>
G_SOCKET_FAMILY_UNIX 1 = GLIB_SYSDEF_AF_UNIX 1
0:00:00.112174009 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:837:gst_multiudpsink_configure_client:<udpsink0>
G_SOCKET_FAMILY_IPV4 2 = GLIB_SYSDEF_AF_INET 2
0:00:00.112206974 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:838:gst_multiudpsink_configure_client:<udpsink0>
G_SOCKET_FAMILY_IPV6 10 = GLIB_SYSDEF_AF_INET6 10

(gst-launch-1.0:26827): GLib-GIO-CRITICAL **:
g_socket_multicast_group_operation: assertion `g_inet_address_get_family
(group) == socket->priv->family' failed
0:00:00.112532296 26827      0x1b15750 WARN            multiudpsink
gstmultiudpsink.c:860:gst_multiudpsink_configure_client:<udpsink0> error: Could
not join multicast group: unknown reason
0:00:00.112742588 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:952:gst_multiudpsink_start:<udpsink0> final have socket
0x1b348f0
0:00:00.135410647 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:775:gst_multiudpsink_get_property:<udpsink0> Get used-socket
0x1b348f0
Pipeline is PREROLLING ...
0:00:00.138430936 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:775:gst_multiudpsink_get_property:<udpsink0> Get used-socket
0x1b348f0
ERROR: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Could not
get/set settings from/on resource.
Additional debug info:
gstmultiudpsink.c(860): gst_multiudpsink_configure_client ():
/GstPipeline:pipeline0/GstUDPSink:udpsink0:
Could not join multicast group: unknown reason
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.160181487 26827      0x1b34940 DEBUG           multiudpsink
gstmultiudpsink.c:775:gst_multiudpsink_get_property:<udpsink0> Get used-socket
0x1b348f0
0:00:00.162071465 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:775:gst_multiudpsink_get_property:<udpsink0> Get used-socket
0x1b348f0
0:00:00.163044565 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:983:gst_multiudpsink_stop:<udpsink0> Setting socket back to 0
Freeing pipeline ...
0:00:00.163726147 26827      0x1b15750 DEBUG           multiudpsink
gstmultiudpsink.c:460:gst_multiudpsink_finalize:<udpsink0> Setting socket back
to 0

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