[Bug 703279] New: souphttpsrc can crash if dconf is not available

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Jun 28 10:52:56 PDT 2013


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

           Summary: souphttpsrc can crash if dconf is not available
    Classification: Platform
           Product: GStreamer
           Version: 1.0.6
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: marcin at saepia.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I've found out that souphttpsrc can crash if DConf is not available. This can
happen on headless environment (server etc.) with D-Bus session bus available
but without any other services that normally come with running D-Bus session (I
mean DConf service, GUI etc.)

It seems that souphttpsrc tries to detect proxy address from the system
settings but if underlying settings backend is not available it just crashes
instead of setting no proxy.

Possible workaround is to set GSETTINGS_BACKEND env variable to "null".

I am not sure if it is behaviour that can be changed on GStreamer plugin level
of it is a black box logic embedded in libsoup but it would be nice to have
additional bool parameter like "read-proxy-from-settings" in souphttpsrc to
explicitely control such behaviour without need to apply ugly workarounds.

Backtrace:

#0  g_logv (log_domain=0x0, log_level=<optimized out>, format=0xf915f0 "unable
to create '%s'; dconf will not work properly.", args1=0xbfffe0cc
"H\334$\b\260\031$\b\364", <incomplete sequence \371>) at
/build/buildd/glib2.0-2.32.3/./glib/gmessages.c:765
#1  0x002c7823 in g_log (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL,
format=0xf915f0 "unable to create '%s'; dconf will not work properly.") at
/build/buildd/glib2.0-2.32.3/./glib/gmessages.c:792
#2  0x00f8f65d in ?? () from
/usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so
#3  0x00f8e1af in ?? () from
/usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00f8ef17 in ?? () from
/usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so
#5  0x00f90ed6 in ?? () from
/usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so
#6  0x0025671b in g_type_create_instance (type=136632720) at
/build/buildd/glib2.0-2.32.3/./gobject/gtype.c:1892
#7  0x00239508 in g_object_constructor (type=136632720,
n_construct_properties=0, construct_params=0x0) at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1849
#8  0x0023b231 in g_object_newv (object_type=136632720, n_parameters=0,
parameters=0x0) at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1632
#9  0x0023b7c8 in g_object_new (object_type=136632720, first_property_name=0x0)
at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1542
#10 0x003c5cfb in try_implementation (extension=<optimized out>,
verify_func=0x4187a0 <g_settings_backend_verify>) at
/build/buildd/glib2.0-2.32.3/./gio/giomodule.c:645
#11 0x003c5eb7 in _g_io_module_get_default (extension_point=0x470a14
"gsettings-backend", envvar=0x4821b8 "GSETTINGS_BACKEND", verify_func=0x4187a0
<g_settings_backend_verify>) at
/build/buildd/glib2.0-2.32.3/./gio/giomodule.c:742
#12 0x00419851 in g_settings_backend_get_default () at
/build/buildd/glib2.0-2.32.3/./gio/gsettingsbackend.c:985
#13 0x0041d29d in g_settings_constructed (object=0x8221740) at
/build/buildd/glib2.0-2.32.3/./gio/gsettings.c:567
#14 0x0023b1ba in g_object_newv (object_type=136626832, n_parameters=1,
parameters=0x824afd8) at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1741
#15 0x0023b543 in g_object_new_valist (object_type=136626832,
first_property_name=0x4829f3 "schema-id", var_args=0xbfffe5d0 "&\213",
<incomplete sequence \370>) at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1830
#16 0x0023b7a0 in g_object_new (object_type=136626832,
first_property_name=0x4829f3 "schema-id") at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1545
#17 0x0041df81 in g_settings_new (schema_id=0xf88b26 "org.gnome.system.proxy")
at /build/buildd/glib2.0-2.32.3/./gio/gsettings.c:857
#18 0x00f87855 in ?? () from
/usr/lib/i386-linux-gnu/gio/modules/libgiognomeproxy.so
#19 0x0025671b in g_type_create_instance (type=136624560) at
/build/buildd/glib2.0-2.32.3/./gobject/gtype.c:1892
#20 0x00239508 in g_object_constructor (type=136624560,
n_construct_properties=0, construct_params=0x0) at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1849
#21 0x0023b231 in g_object_newv (object_type=136624560, n_parameters=0,
parameters=0x0) at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1632
#22 0x0023b7c8 in g_object_new (object_type=136624560, first_property_name=0x0)
at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1542
#23 0x003c5cfb in try_implementation (extension=<optimized out>,
verify_func=0x3d3a70 <g_proxy_resolver_is_supported>) at
/build/buildd/glib2.0-2.32.3/./gio/giomodule.c:645
#24 0x003c5eb7 in _g_io_module_get_default (extension_point=0x46a105
"gio-proxy-resolver", envvar=0x4730c6 "GIO_USE_PROXY_RESOLVER",
verify_func=0x3d3a70 <g_proxy_resolver_is_supported>) at
/build/buildd/glib2.0-2.32.3/./gio/giomodule.c:742
#25 0x003d3b41 in g_proxy_resolver_get_default () at
/build/buildd/glib2.0-2.32.3/./gio/gproxyresolver.c:65
#26 0x00de6e8f in ?? () from /usr/lib/i386-linux-gnu/libsoup-gnome-2.4.so.1
#27 0x0025671b in g_type_create_instance (type=136476280) at
/build/buildd/glib2.0-2.32.3/./gobject/gtype.c:1892
#28 0x00239508 in g_object_constructor (type=136476280,
n_construct_properties=0, construct_params=0x0) at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1849
#29 0x0023b231 in g_object_newv (object_type=136476280, n_parameters=0,
parameters=0x0) at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1632
#30 0x0023b7c8 in g_object_new (object_type=136476280, first_property_name=0x0)
at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1542
#31 0x00560eb8 in soup_session_add_feature_by_type () from
/usr/lib/i386-linux-gnu/libsoup-2.4.so.1
#32 0x0056188b in ?? () from /usr/lib/i386-linux-gnu/libsoup-2.4.so.1
#33 0x0023af50 in object_set_property (nqueue=0x8213730, value=0x82494d4,
pspec=0x8241890, object=0x8249818) at
/build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1352
#34 g_object_newv (object_type=136612320, n_parameters=4, parameters=0x8249488)
at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1745
#35 0x0023b543 in g_object_new_valist (object_type=136612320,
first_property_name=0xde0f0e "async-context", var_args=0xbfffec74 "@\224\213")
at /build/buildd/glib2.0-2.32.3/./gobject/gobject.c:1830
#36 0x00563233 in soup_session_async_new_with_options () from
/usr/lib/i386-linux-gnu/libsoup-2.4.so.1
#37 0x00ddd9e6 in gst_soup_http_src_start (bsrc=0x82420b0) at
gstsouphttpsrc.c:1223
#38 0x00a56be7 in gst_base_src_start (basesrc=0x82420b0) at gstbasesrc.c:3141
#39 gst_base_src_start (basesrc=0x82420b0) at gstbasesrc.c:3116
#40 0x00a56f7f in gst_base_src_activate_push (active=1, parent=0x82420b0,
pad=<optimized out>) at gstbasesrc.c:3509
#41 gst_base_src_activate_mode (pad=0x823aaf8, parent=0x82420b0,
mode=GST_PAD_MODE_PUSH, active=1) at gstbasesrc.c:3584
#42 0x0018fd32 in gst_pad_activate_mode (pad=0x823aaf8, mode=GST_PAD_MODE_PUSH,
active=1) at gstpad.c:1060
#43 0x0019094b in gst_pad_activate_default (pad=0x823aaf8, parent=0x82420b0) at
gstpad.c:808
#44 0x0019063d in gst_pad_set_active (pad=0x823aaf8, active=1) at gstpad.c:936
#45 0x00171cbd in activate_pads (vpad=0xbfffee5c, ret=0xbfffeebc,
active=0xbfffef1c) at gstelement.c:2679
#46 0x00182897 in gst_iterator_fold (it=0x8248380, func=0x171c90
<activate_pads>, ret=0xbfffeebc, user_data=0xbfffef1c) at gstiterator.c:614
#47 0x0017208e in iterator_activate_fold_with_resync (iter=0x8248380,
user_data=0xbfffef1c, func=0x171c90 <activate_pads>) at gstelement.c:2699
#48 0x001740da in gst_element_pads_activate (element=0x82420b0, active=1) at
gstelement.c:2735
#49 0x00174495 in gst_element_change_state_func (element=0x82420b0,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstelement.c:2807
#50 0x00a54923 in gst_base_src_change_state (element=0x82420b0,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstbasesrc.c:3621
#51 0x0017621b in gst_element_change_state (element=0x82420b0,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstelement.c:2594
#52 0x00176c3e in gst_element_set_state_func (element=0x82420b0,
state=GST_STATE_PAUSED) at gstelement.c:2550
#53 0x00175f51 in gst_element_set_state (element=0x82420b0,
state=GST_STATE_PAUSED) at gstelement.c:2451
#54 0x0015b678 in gst_bin_element_set_state (next=GST_STATE_PAUSED,
current=GST_STATE_READY, start_time=0, base_time=1114029468517435,
element=0x82420b0, bin=0x8218138) at gstbin.c:2292
#55 gst_bin_change_state_func (element=0x8218138,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstbin.c:2594
#56 0x0017621b in gst_element_change_state (element=0x8218138,
transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstelement.c:2594
#57 0x00176713 in gst_element_continue_state (element=0x8218138,
ret=GST_STATE_CHANGE_SUCCESS) at gstelement.c:2305
#58 0x0017629f in gst_element_change_state (element=0x8218138,
transition=GST_STATE_CHANGE_NULL_TO_READY) at gstelement.c:2631
#59 0x00176c3e in gst_element_set_state_func (element=0x8218138,
state=GST_STATE_PLAYING) at gstelement.c:2550
#60 0x00175f51 in gst_element_set_state (element=0x8218138,
state=GST_STATE_PLAYING) at gstelement.c:2451
#61 0x080863fb in myapp_daemon_element_base_transition_attach_begin
(self=0x822c058) at src/daemon/pipeline/elements/element-base.c:2553
#62
_myapp_daemon_element_base_transition_attach_begin_myapp_daemon_element_state_transition_func
(self=0x822c058) at src/daemon/pipeline/elements/element-base.c:2465
#63 0x080839a5 in myapp_daemon_element_base_state_transition (self=0x822c058,
debug_name=0x80abc46 "Element.Base.attach", states_required=0x8226620,
states_required_length1=1, 
    transition=0x80862a0
<_myapp_daemon_element_base_transition_attach_begin_myapp_daemon_element_state_transition_func>,
transition_target=0x822c058) at
src/daemon/pipeline/elements/element-base.c:2349
#64 0x08084544 in myapp_daemon_element_base_attach (self=0x822c058) at
src/daemon/pipeline/elements/element-base.c:2481
#65 0x0808ab89 in myapp_daemon_pipeline_manager_add_source (self=0x80d4498,
source=0x822c058, error=0xbffff4e0) at
src/daemon/pipeline/supervisors/pipeline-manager.c:1203
#66 0x0808bc62 in myapp_daemon_pipeline_manager_initialize_config_elements
(self=0x80d4498) at src/daemon/pipeline/supervisors/pipeline-manager.c:621
#67 myapp_daemon_pipeline_manager_on_bus_message (msg=0xb42096e0,
bus=0xb72045e0, self=0x80d4498) at
src/daemon/pipeline/supervisors/pipeline-manager.c:1630

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