Syncthing GUI on Fedora 23 shows empty

Hi,

I installed Syncthing 0.8.3 (Daemon v0.12.21) on 3 Fedora 23 Linux systems. On 2 of them (one with Cinnamon one with XFCE DE) all works perfectly. On one older laptop (with XFCE) all seems to work: after adding a device and using the default sync folder things get synced, but the GTK interface is completely empty. When I move the mouse over the empty window, the mouse pointer changes and right-clicking the menu shows up and I can edit, ignore, delete etc. So; there is something there only it is not visible!

Another thing: the web interface does not work and/or does not accept my username/pass. Syncthing comes up with http://127.0.0.1:8080/ and an authorization window. What am I doing wrong here?

It would be great to have it working on all 3 systems… ;(

Thansk for your time.

Tom

If the GTK UI does not work, just run the daemon by itself and use the web ui. @kozec would be the best person to answer why the GTK part does not work.

Like said above, I don’t know how to get the web interface to work on none of the 3 systems. I saw there are different addresses mentioned:

127.0.0.1:8080 when I choose menu item : Open Web Interface ( This comes up with authentication window, but I cant log-in)

https://127.0.0.1:8384 in documentation (Firefox says : Unable to connect)

Neither of them work

You should run raw syncthing if you don’t want a password set.

I appreciate your time, but I have the idea you don’t address the things I bring up.

First of all; I’m a layman.

I suppose you mean by : You should run raw syncthing… start it from the command line??

If I start syncthing from the command line, it will come up with the GUI. I changed the flag in config.xml to start the gui, like below:

<gui enabled="true" tls="false">     // changed: enabled="false"
    <address>0.0.0.0:8080</address>
    <user>My_name</user>
    <password>My_Password</password>
    <apikey>1rkpbp1ekti3tc1wkl8nt7h9grfob8</apikey>
    <theme>default</theme>
</gui>

After that change the GUI doesn’t show up, but when I try to use the web addresses mentioned above I still get: Unable to connect.

I suppose a password is a useful thing to have for remote access of SyncThing …

But all this is currently of-topic, since my 1st concern is why on 1 system the GUI doesn’t work…

Will @kozec see this because his name is mentioned here?

Of course you cannot connect if you disable the gui. If you don’t want to autostart the browser, set the option startBrowser to false.

The config file holds an encrypted password, so setting it there in plain text does not work. The easiest way is to remove the password from the config, start syncthing and set the password in the gui.

It does not, I was highly surprised to see both name and password readable in syncthing/config.xml

That might explain why it doesn’t let me in: if tries to decode the un-coded password, it will likely be false…

PS name and password were set during the very 1st start of SyncThing.

Try running syncthing-gtk -d from terminal on machine where it fails to load. If it doesn’t display anything that looks related, just copy entire log.

Anyway, disabling gui will kill Syncthing-GTK as well, it uses same way to communicate with Syncthing.

Below the output on the terminal window.

SyncThing GTK window still empty.

I also checked which versions of GTK and Cairo are installed.

`[Lin@localhost ~]$ syncthing-gtk -d
/usr/lib/python2.7/site-packages/syncthing_gtk/uibuilder.py:16: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk
/usr/lib/python2.7/site-packages/syncthing_gtk/notifications.py:16: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
  from gi.repository import Notify
/usr/lib/python2.7/site-packages/syncthing_gtk/infobox.py:8: PyGIWarning: Rsvg was imported without specifying a version first. Use gi.require_version('Rsvg', '2.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk, Gdk, GLib, GObject, Pango, Rsvg
D UIBuilder     Enabled: header_bar
D UIBuilder     Enabled: icons_in_menu
D UIBuilder     Loading glade file /usr/share/syncthing-gtk/app.glade
D UIBuilder     Enabled conditions: set([u'icons_in_menu', u'header_bar'])
D UIBuilder     Removed 'property' by attribute: is_windows
D UIBuilder     Removed 'property' by attribute: is_windows
D UIBuilder     Allowed node icons_in_menu | old_gtk
D UIBuilder     Removed 'property' by attribute: is_windows
D UIBuilder     Allowed node !is_gnome | old_gtk
D UIBuilder     Allowed node icons_in_menu | old_gtk
D UIBuilder     Removed 'property' by attribute: old_gtk
D UIBuilder     Allowed node icons_in_menu | old_gtk
D UIBuilder     Allowed node icons_in_menu | old_gtk
D UIBuilder     Removed 'child' by attribute: traditional_header
D UIBuilder     Removed 'child' by attribute: is_windows
D UIBuilder     Allowed node icons_in_menu | old_gtk
D UIBuilder     Removed 'property' by attribute: is_windows
D UIBuilder     Removed node traditional_header
D UIBuilder     Allowed node traditional_header | icons_in_menu
I StatusIcon    Using backend StatusIconGTK3 (primary)
D Daemon        WebUI listens on 0.0.0.0, connecting to 127.0.0.1 instead
V Notifications Error notifications enabled
V Notifications File update notifications enabled

Syncthing-GTK started and running in notification area
V Daemon        Set refresh interval to 5

(syncthing-gtk:3343): Gdk-CRITICAL **: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
E Daemon        g-io-error-quark: Could not connect to 127.0.0.1: Connection refused (39)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/syncthing_gtk/daemon.py", line 408, in _rest_connected
    con = sc.connect_to_service_finish(results)
Error: g-io-error-quark: Could not connect to 127.0.0.1: Connection refused (39)
D App           Creating connect_dialog
V App           Settinig connect_dialog label Starting Syncth
D InfoBox       CoolComp state changed to Disconnected
D InfoBox       localhost.localdomain state changed to Disconnected
D InfoBox       /home/Lin/Sync/ state changed to Disconnected
D InfoBox       /home/Lin/Sync/ state changed to Unknown
D InfoBox       /home/Lin/Sync/ state changed to Up to Date
D InfoBox       /home/Lin/Sync/ state changed to Offline
D InfoBox       localhost.localdomain state changed to 
I App           updatecheck: disabled
V Daemon        Set refresh interval to 1
V Daemon        Forced to request events

(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24


(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24

TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
D InfoBox       CoolComp state changed to Connected
D InfoBox       /home/Lin/Sync/ state changed to Up to Date
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
D InfoBox       /home/Lin/Sync/ state changed to Syncing
D InfoBox       /home/Lin/Sync/ state changed to Up to Date
D InfoBox       CoolComp state changed to Up to Date
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'

(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24


(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24

TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'

(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24

TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'

(syncthing-gtk:3343): Gtk-WARNING **: Invalid icon size 24

[Lin@localhost ~]$ sudo dnf list installed cairo*
[sudo] password for Lin: 
Last metadata expiration check: 0:08:22 ago on Mon Mar 28 17:07:18 2016.
Installed Packages
cairo.i686                                           1.14.2-2.fc23                                 @fedora         
cairo.x86_64                                         1.14.2-2.fc23                                 @koji-override-0
cairo-gobject.x86_64                                 1.14.2-2.fc23                                 @koji-override-0
cairomm.x86_64                                       1.12.0-1.fc23                                 @koji-override-0
[Lin@localhost ~]$ sudo dnf list installed gtk*
Last metadata expiration check: 0:08:30 ago on Mon Mar 28 17:07:18 2016.
Installed Packages
gtk-murrine-engine.x86_64                        0.98.2-8.fc23                                     @fedora         
gtk-unico-engine.x86_64                          1.0.3-0.6.20140109bzr152.fc23                     @fedora         
gtk-update-icon-cache.x86_64                     3.18.9-1.fc23                                     @updates        
gtk-vnc2.x86_64                                  0.5.4-2.fc23                                      @koji-override-0
gtk-xfce-engine.x86_64                           3.2.0-2.fc23                                      @fedora         
gtk2.i686                                        2.24.30-1.fc23                                    @updates        
gtk2.x86_64                                      2.24.30-1.fc23                                    @updates        
gtk2-engines.i686                                2.20.2-10.fc23                                    @fedora         
gtk2-engines.x86_64                              2.20.2-10.fc23                                    @fedora         
gtk3.x86_64                                      3.18.9-1.fc23                                     @updates        
gtkmm24.x86_64                                   2.24.4-7.fc23                                     @koji-override-0
gtkmm30.x86_64                                   3.18.0-1.fc23                                     @koji-override-0
gtksourceview3.x86_64                            3.18.2-1.fc23                                     @updates        
gtkspell.x86_64                                  2.0.16-10.fc23                                    @fedora         
gtkspell3.x86_64                                 3.0.7-2.fc23                                      @koji-override-0
[Lin@localhost ~]$ 
[Lin@localhost ~]$ 

`

I hope this clarifies something

Syncthing started saving the password as a hash instead of cleartext in v0.8.0, April 2014. We stopped understanding a legacy cleartext password in the config in v0.12.0, November 2015. Possibly something else is writing an unhashed password to the config, something expecting a pre-v0.12 Syncthing, and Syncthing no longer understands this?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.