#1059 [1.10RC1] Liferea crashes with system proxy enabled (Fedora 18 / GNOME 3.6)

v1.10
closed-fixed
Lars Windolf
None
9
2015-01-13
2013-03-01
genodeftest
No

Liferea crashes when configuring a gnome proxy on my system (Fedora 18 / GNOME 3.6).

Steps to reproduce:
0. liferea proxy settings are set to "auto (GNOME proxy settings)"
1. Open gnome-control-center, section network
2. configure a proxy, e.g. TOR/polipo SOCKS proxy on 127.0.0.1:9050
3. (try to) start liferea

what happens: this output on console, liferea immediately exits
(liferea:4789): GLib-GIO-ERROR **: Settings schema 'org.gnome.system.proxy' does not contain a key named 'host'
Trace/Breakpoint ausgelöst (Speicherabzug geschrieben)

Other case to reproduce:
1. disable GNOME proxy
2. set liferea to auto-detect proxy
3. enable GNOME proxy
⇒ liferea immediately crashes

Reason:
in src/conf.c:38
#define PROXY_SCHEMA_NAME "org.gnome.system.proxy"
Liferea tries to read the value from key named "host" in org.gnome.system.proxy, but according to dconf-editor this path does not exist. There is "system.proxy" instead, but it does not provide a "host" key.

What is expected?
1. at least liferea should start
2. if proxy configuration fails it

Temporary workaround:
a) disable proxy in liferea
b) disable GNOME proxy

Discussion

  • genodeftest
    genodeftest
    2013-03-02

    This seems to be a regression of #205 (migradtion from gconf to gsettings).

    org.gnome.system.proxy is partly correct, system.proxy is not. See:

    $ gsettings list-recursively org.gnome.system.proxy
    org.gnome.system.proxy autoconfig-url ''
    org.gnome.system.proxy ignore-hosts ['localhost', '127.0.0.0/8', '192.168.0.0/24']
    org.gnome.system.proxy mode 'manual'
    org.gnome.system.proxy use-same-proxy false
    org.gnome.system.proxy.ftp host ''
    org.gnome.system.proxy.ftp port 0
    org.gnome.system.proxy.http authentication-password ''
    org.gnome.system.proxy.http authentication-user ''
    org.gnome.system.proxy.http enabled false
    org.gnome.system.proxy.http host ''
    org.gnome.system.proxy.http port 8080
    org.gnome.system.proxy.http use-authentication false
    org.gnome.system.proxy.https host ''
    org.gnome.system.proxy.https port 0
    org.gnome.system.proxy.socks host '127.0.0.1'
    org.gnome.system.proxy.socks port 9050
    

    Pidgin has a solution:
    https://developer.pidgin.im/ticket/13867
    http://hg.pidgin.im/pidgin/main/file/50853d1efbca/libpurple/proxy.c

     
    Last edit: genodeftest 2013-03-02
  • genodeftest
    genodeftest
    2013-03-12

    When installing/updating software providing GSettings schemas on my Fedora 18 I sometimes get this (and similar) output:
    YUM: warning: Schema 'org.gnome.system.proxy.ftp' has path '/system/proxy/ftp/'. Paths starting with '/apps/', '/desktop/' or '/system/' are deprecated.

     
  • I'll have a look at this.

     
  • Totally forgot about this, and I'm not sure if I'm going to have time for it anytime soon.

     
  • Lars Windolf
    Lars Windolf
    2013-07-11

    • assigned_to: Lars Windolf
    • Priority: 5 --> 9
     
  • genodeftest
    genodeftest
    2013-07-11

    Tried with 1.10 from git (did a git pull just now). Here is the gdb output:

    Starting program: /usr/local/bin/liferea 
    Traceback (most recent call last):
      File "/usr/share/gdb/auto-load/usr/lib64/libgobject-2.0.so.0.3600.3-gdb.py", line 9, in <module>
        from gobject import register
      File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
        import gdb.backtrace
    ImportError: No module named backtrace
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib64/libthread_db.so.1".
    Detaching after fork from child process 17340.
    [New Thread 0x7ffff17cf700 (LWP 17341)]
    
    (liferea:17334): GLib-GIO-ERROR **: Settings schema 'org.gnome.system.proxy' does not contain a key named 'host'
    
    Program received signal SIGTRAP, Trace/breakpoint trap.
    g_logv (log_domain=0x3c86ee8cb8 "GLib-GIO", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, 
        args=args@entry=0x7fffffffd2c8) at gmessages.c:981
    981       g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
    

    and a backtrace is attached. As noted above I think it liferea should completely rely on libsoup for network I/O as webkitgtk does.

     
    Attachments
  • Lars Windolf
    Lars Windolf
    2013-07-22

    I'll look into getting rid of the proxy schema dependency by using libsoup+libproxy.

     
  • Lars Windolf
    Lars Windolf
    2013-07-22

    genodeftest: Please retest with git master! I got rid of all GNOME proxy handling and Liferea now just enables libproxy (libsoup default proxy resolver) if "Automatic" option is selected.

     
  • Lars Windolf
    Lars Windolf
    2013-07-22

    • status: open --> open-fixed
     
  • genodeftest
    genodeftest
    2013-07-24

    I tried your fix [1] and it works fine. I can't make liferea crash from my proxy settings any more. The Browser now seems to use the SOCKS proxy if only socks proxy is specified.
    It seems like Liferea now uses the SOCKS proxy for updating the feeds too.
    Thanks!

    [1] https://sourceforge.net/p/liferea/code/ci/209d13862829f17f95631898cd58f0f4e71a7429/

     
  • Lars Windolf
    Lars Windolf
    2013-07-25

    Thank you for retesting! Fixed will be included in 10.0.1

     
  • Lars Windolf
    Lars Windolf
    2013-07-25

    s/10.0.1/1.10.1/

     
  • Lars Windolf
    Lars Windolf
    2013-07-28

    • status: open-fixed --> closed-fixed
     
  • Lars Windolf
    Lars Windolf
    2013-07-28

    Fix released with 1.10.1