Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content

easy-installer v0.12.0-beta crashes with "Internal Error" on Linux

Summary

The easy-installer snap package does not run (observed on Ubuntu 18.04 and opensuse Leap 15.2) at all. Starting it from a terminal shows a stack trace containing

Caused by: java.lang.UnsupportedOperationException: Internal Error

The problem

Steps to reproduce

  • Install the easy-installer v0.12.0-beta snap package on Linux
  • run it (e.g. snap run easy-installer)

What is the current behavior?

The easy-installer does not start.

What is the expected correct behavior?

The easy-installer should start.

Technical informations

Relevant logs

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.UnsupportedOperationException: Internal Error
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.<init>(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.Application.run(Unknown Source)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
        ... 5 more

Solutions

Workaround

Run the previous version v0.11.2-beta if you had it installed before and updated to v0.12.0-beta.

snap revert easy-installer --revision 14 

I don't know if it is possible to specify an old version when initially installing a snap.

Possible fixes

I assume it's a wrong library version being used.

When run with sudo one gets a little more output before the stacktrace

/snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0: symbol lookup error: /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph
g_module_open() failed for /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph

The hb_buffer_set_invisible_glyph is supposed to come from libharfbuzz.

$ ldd /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
        ...
        libharfbuzz.so.0 => /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f61671bc000)

This is a symbolic link to libharfbuzz.so.0.10702.0 which indeed does not contain the required symbol

$ strings /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0 | grep invisible
<no result>

The one from the gnome snap package (libharfbuzz.so.0.20600.2) does contain the symbol

$ strings /snap/easy-installer/15/gnome-platform/usr/lib/libharfbuzz.so.0.20600.2 | grep invisible
hb_buffer_set_invisible_glyph
hb_buffer_get_invisible_glyph
hb_buffer_get_invisible_glyph
hb_buffer_set_invisible_glyph

Assuming this is the root cause of the "Internal Error" it might be sufficient to remove the older library from the easy-installer snap package so that it would be taken from the gnome snap.

$ ls -l /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz*
lrwxrwxrwx 1 root root     24 13. Apr 2018  /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 -> libharfbuzz.so.0.10702.0
-rw-r--r-- 1 root root 646064 13. Apr 2018  /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0

The previous version of the easy-installer did not include libharfbuzz, BTW:

$ ls -l /snap/easy-installer/14/usr/lib/x86_64-linux-gnu/libharfbuzz*
zsh: no matches found: /snap/easy-installer/14/usr/lib/x86_64-linux-gnu/libharfbuzz*
Edited by Ingo