I have a Ubuntu 18.04 virtual machine and installed the easy-installer. Then I get the same Caused by: java.lang.UnsupportedOperationException: Internal Error
problem.
It seems to be related to AppArmor that is blocking something, at least there are several entries for the easy-installer
$ sudo journalctl --since=yesterday | grep audit | grep installer
Mostly this gives
Feb 17 18:31:47 ubuntu1804 kernel: audit: type=1400 audit(1613583107.346:154): apparmor="DENIED" operation="open" profile="snap.easy-installer.easy-installer" name="/snap/core/10823/usr/share/locale/de/LC_MESSAGES/snappy.mo" pid=3331 comm="snap-exec" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Feb 17 18:31:47 ubuntu1804 audit[3518]: AVC apparmor="DENIED" operation="open" profile="snap.easy-installer.easy-installer" name="/proc/3518/mountinfo" pid=3518 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Edit: I tried editing the AppArmor config via
$ sudo nano /var/lib/snapd/apparmor/profiles/snap.easy-installer.easy-installer
I’ve added three lines at the end before the closing “}”
@{PROC}/@{pid}/mountinfo r,
@{HOME} r,
/snap/core/10823/usr/share/locale/** mrkix,
}
After reloading this policy the audit log DENIED entries are gone
$ sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.easy-installer.easy-installer
Unfortunately this did not change the error when running the installer.
Edit 2:
With sudo I see the same error like Borkin and maybe /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph
hints at the root cause?
Might be a missing library or a buggy “libpango-1.0”?!?
Edit 3: the missing symbol is supposed to be in libharfbuzz.
Running a shell in the easy-installer snap via
$ snap run --shell easy-installer
I then get no result from
$ strings /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0 | grep invisible
If I do a similar thing on my host machine, I get
$ strings /usr/lib64/libharfbuzz.so.0 | grep invisible
hb_buffer_set_invisible_glyph
hb_buffer_get_invisible_glyph
So it looks like the libharfbuzz that the easy-installer snap package uses is broken.
Edit 4: I don’t know too much about snaps. It sort of looks like the easy-installer uses the gnome snap
$ snap connections easy-installer
Interface Plug Slot Notes
adb-support easy-installer:adb-support :adb-support -
content[gnome-3-34-1804] easy-installer:gnome-3-34-1804 gnome-3-34-1804:gnome-3-34-1804 -
content[gtk-3-themes] easy-installer:gtk-3-themes gtk-common-themes:gtk-3-themes -
content[icon-themes] easy-installer:icon-themes gtk-common-themes:icon-themes -
content[sound-themes] easy-installer:sound-themes gtk-common-themes:sound-themes -
desktop easy-installer:desktop :desktop -
desktop-legacy easy-installer:desktop-legacy :desktop-legacy -
gsettings easy-installer:gsettings :gsettings -
network easy-installer:network :network -
opengl easy-installer:opengl :opengl -
raw-usb easy-installer:raw-usb :raw-usb -
wayland easy-installer:wayland :wayland -
x11 easy-installer:x11 :x11 -
But the libharfbuzz from the snap seems ok:
$ strings /snap/gnome-3-34-1804/66/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
Looks like the system libharfbuzz is taken and it doesn’t have the required symbol:
$ strings /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0 | grep invisible
And “inside” the easy-installer snap I see that it’s really this (wrong) version that gets taken
$ ls -la /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
lrwxrwxrwx 1 root root 24 Apr 13 2018 /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 -> libharfbuzz.so.0.10702.0
Maybe someone with more snap knowledge can take over from here?!?
Edit 5: note to self: maybe https://forum.snapcraft.io/t/effects-of-dynamic-library-caching-on-snap-startup-performance/14454 helps understanding why the wrong libraries are taken