RIST/RTP Source assertion on malformed IPv4/IPv6 address
This is what we get if we pass a DNS to address
property. I notice them in both ristsrc and rtpsrc today. Creating an issue as a reminder. We should handle this nicer, or in a way user will understand.
(gst-play-1.0:229317): GLib-GIO-CRITICAL **: 10:10:37.604: g_inet_address_get_is_multicast: assertion 'G_IS_INET_ADDRESS (address)' failed
(gst-play-1.0:229317): GLib-GObject-CRITICAL **: 10:10:37.605: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
And backtrace:
(gst-play-1.0:234973): GLib-GIO-CRITICAL **: 12:08:28.402: g_inet_address_get_is_multicast: assertion 'G_IS_INET_ADDRESS (address)' failed
Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7fffe9917718 "GLib-GIO", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1377
1377 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
Missing separate debuginfos, use: dnf debuginfo-install cyrus-sasl-lib-2.1.27-4.fc32.x86_64 keyutils-libs-1.6-4.fc32.x86_64 krb5-libs-1.18.2-9.fc32.x86_64 libbrotli-1.0.7-10.fc32.x86_64 libcom_err-1.45.5-3.fc32.x86_64 libcurl-7.69.1-4.fc32.x86_64 libidn2-2.3.0-2.fc32.x86_64 libnghttp2-1.41.0-1.fc32.x86_64 libpsl-0.21.0-4.fc32.x86_64 libssh-0.9.4-2.fc32.x86_64 libunistring-0.9.10-7.fc32.x86_64 libxcrypt-4.4.16-3.fc32.x86_64 openldap-2.4.47-4.fc32.x86_64
(gdb) br
Breakpoint 1 at 0x7ffff7cf0fe2: file ../glib/gmessages.c, line 1377.
(gdb) bt
#0 g_logv (log_domain=0x7fffe9917718 "GLib-GIO", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1377
#1 0x00007ffff7cf1253 in g_log
(log_domain=log_domain@entry=0x7fffe9917718 "GLib-GIO", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff7d436ff "%s: assertion '%s' failed") at ../glib/gmessages.c:1415
#2 0x00007ffff7cf1a4d in g_return_if_fail_warning
(log_domain=log_domain@entry=0x7fffe9917718 "GLib-GIO", pretty_function=pretty_function@entry=0x7fffe9921960 <__func__.6> "g_inet_address_get_is_multicast", expression=expression@entry=0x7fffe992155c "G_IS_INET_ADDRESS (address)") at ../glib/gmessages.c:2771
#3 0x00007fffe9840efa in g_inet_address_get_is_multicast (address=address@entry=0x0) at ../gio/ginetaddress.c:703
#4 0x00007fffe9a431d9 in gst_rist_src_setup_rtcp_socket (bond=0x6dd180, src=0x6f0170 [GstRistSrc]) at ../gst/rist/gstristsrc.c:596
#5 gst_rist_src_start (src=0x6f0170 [GstRistSrc]) at ../gst/rist/gstristsrc.c:662
#6 gst_rist_src_change_state (element=<optimized out>, transition=<optimized out>) at ../gst/rist/gstristsrc.c:838
#7 0x00007ffff7b57d7e in gst_element_change_state (element=element@entry=0x6f0170 [GstRistSrc], transition=transition@entry=GST_STATE_CHANGE_NULL_TO_READY)
at ../gst/gstelement.c:3046
#8 0x00007ffff7b583c8 in gst_element_set_state_func (element=0x6f0170 [GstRistSrc], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#9 0x00007fffe9a7dde1 in gst_uri_decode_bin_change_state (element=<optimized out>, transition=<optimized out>) at ../gst/playback/gsturidecodebin.c:2884
#10 0x00007ffff7b57d7e in gst_element_change_state (element=element@entry=0x6ea080 [GstURIDecodeBin], transition=GST_STATE_CHANGE_READY_TO_PAUSED)
at ../gst/gstelement.c:3046
#11 0x00007ffff7b588c8 in gst_element_continue_state (element=element@entry=0x6ea080 [GstURIDecodeBin], ret=ret@entry=GST_STATE_CHANGE_SUCCESS)
at ../gst/gstelement.c:2754
#12 0x00007ffff7b57dc7 in gst_element_change_state
(element=element@entry=0x6ea080 [GstURIDecodeBin], transition=transition@entry=GST_STATE_CHANGE_NULL_TO_READY) at ../gst/gstelement.c:3085
#13 0x00007ffff7b583c8 in gst_element_set_state_func (element=0x6ea080 [GstURIDecodeBin], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#14 0x00007fffe9a9bf7b in activate_group (target=GST_STATE_PAUSED, group=0x6e4fd8, playbin=0x6e4b50 [GstPlayBin]) at ../gst/playback/gstplaybin2.c:5501
#15 setup_next_source (playbin=playbin@entry=0x6e4b50 [GstPlayBin], target=GST_STATE_PAUSED) at ../gst/playback/gstplaybin2.c:5725
#16 0x00007fffe9a9cee2 in gst_play_bin_change_state (element=0x6e4b50 [GstPlayBin], transition=<optimized out>) at ../gst/playback/gstplaybin2.c:5854
#17 0x00007ffff7b57d7e in gst_element_change_state (element=element@entry=0x6e4b50 [GstPlayBin], transition=transition@entry=GST_STATE_CHANGE_READY_TO_PAUSED)
at ../gst/gstelement.c:3046
#18 0x00007ffff7b583c8 in gst_element_set_state_func (element=0x6e4b50 [GstPlayBin], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#19 0x000000000040587c in play_uri (play=0x6d9970, next_uri=0x6df8e0 "rist://localhost:1234") at ../tools/gst-play.c:680
#20 0x000000000040428a in play_next (play=0x6d9970) at ../tools/gst-play.c:706
#21 do_play (play=<optimized out>) at ../tools/gst-play.c:755
#22 main (argc=<optimized out>, argv=<optimized out>) at ../tools/gst-play.c:1626
cc @den_erpel @slomo
Edited by Nicolas Dufresne