GNOME Bugzilla – Bug 703279
souphttpsrc can crash if dconf is not available
Last modified: 2013-06-28 18:11:01 UTC
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:
+ Trace 232165
It looks like a bug in soup or gio to me, we just call soup_session_async_new_with_options() - so unless we pass some bogus arguments it should not crash.
Actually, this is a common packaging error. You have the Gnome proxy extension installed (see glib-networking) but you don't have the schemas for it so DConf library will abort your program. To solve it, remove that extension, glib can work just fine without any proxy backend support, or just the libproxy one if you need it. Ideally, you should split the Gnome backend from glib-networking package (e.g. glib-networking-gnome), and make sure that it correctly depends on having the shcemes installed.