All my snaps are not working any longer!

Hi there,

I’m the maintainer of the snaps “cura-slicer” and “pymol-oss” . Since a few days the snaps are crashing when i try to open the file-dialog:

python3:5158): GLib-GIO-ERROR **: 12:06:46.378: No GSettings schemas are installed on the system

I’m running Ubuntu 21.04 with snapd-version 2.50.

So the snaps start but stop working once you reach a file open dialog? Is there anything more in the log? Can you try running with G_MESSAGES_DEBUG=all ?

I was able to reproduce the problem on Arch and collect a backtrace. Not sure what to make of it, I’m not intimately familiar with Qt or how it calls out to glib/gio.

#0  0x00007f974a251295 in ?? () from /snap/core20/1031/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f974a252319 in g_log_default_handler () from /snap/core20/1031/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f974a25255c in g_logv () from /snap/core20/1031/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f974a252743 in g_log () from /snap/core20/1031/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f9746d4f1fa in ?? () from /snap/core20/1031/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5  0x00007f9747168681 in ?? () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007f974716a378 in g_object_new_valist () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007f974716a6cd in g_object_new () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007f974750ea2c in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.16
#9  0x00007f9747511d24 in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.16
#10 0x00007f974750a25a in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.16
#11 0x00007f9747162802 in g_closure_invoke () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007f9747176814 in ?? () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007f9747181bbe in g_signal_emit_valist () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007f9747182b9c in g_signal_emit_by_name () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007f9747518b14 in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.16
#16 0x00007f974716a940 in g_object_setv () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007f974716b88f in g_object_set_property () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007f974716ae76 in g_object_set_valist () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007f974716b764 in g_object_set () from /snap/core20/1031/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007f9747afa72d in ?? ()
#21 0x00000000025c7580 in ?? ()
#22 0x00007f9749b0244e in QFileDialogPrivate::userSelectedFiles() const () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#23 0x00007f974ab12760 in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8
#24 0x00007f974ab12760 in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8
#25 0x043d2b4958c69300 in ?? ()
#26 0x0000000002c5f9c0 in ?? ()
#27 0x0000000002c5f9c0 in ?? ()
#28 0x0000000003e6bcf0 in ?? ()
#29 0x0000000002915a50 in ?? ()
#30 0x00007ffeecac0e70 in ?? ()
#31 0x00007f9749af5c1b in QDialogPrivate::setNativeDialogVisible(bool) () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#32 0x00007f9749b093fb in QFileDialog::setVisible(bool) () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#33 0x00007f9749af6b46 in QDialog::exec() () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#34 0x00007f9749b0a1a8 in QFileDialog::getOpenFileUrls(QWidget*, QString const&, QUrl const&, QString const&, QString*, QFlags<QFileDialog::Option>, QStringList const&) () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#35 0x00007f9749b0a448 in QFileDialog::getOpenFileNames(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8
#36 0x00007f974956ba25 in ?? () from /var/lib/snapd/snap/pymol-oss/76/usr/lib/python3/dist-packages/PyQt5/QtWidgets.cpython-38-x86_64-linux-gnu.so
#37 0x00000000005f2fb9 in ?? ()
#38 0x00007f974b7815e0 in ?? ()
#39 0x0000000000000001 in ?? ()
#40 0x0000000000000003 in ?? ()
#41 0x00007f96de79afc0 in ?? ()
#42 0x00007f974b819770 in ?? ()
#43 0x00000000005f3446 in ?? ()
#44 0x00007ffeecac14c0 in ?? ()
#45 0x00000000005f2f60 in ?? ()
#46 0x0000000002c781b0 in ?? ()
#47 0x00007f974b658210 in ?? ()
#48 0x00007f974b6583b8 in ?? ()
#49 0x00000000020b9bc0 in ?? ()
#50 0x00007f974b658398 in ?? ()
#51 0x00007f974b819770 in ?? ()
#52 0x00007f974ba2c23c in ?? ()
#53 0x000000000056f1ca in ?? ()
#54 0x00007ffeecac14c0 in ?? ()
#55 0x00007f974ba2c230 in ?? ()
#56 0x00007f974b658378 in ?? ()
#57 0x00007f974b964e40 in ?? ()
#58 0x00007f974b9bff40 in ?? ()
#59 0x00007f974ba29f50 in ?? ()
#60 0x0000000000000000 in ?? ()

There were some denials logged, but I think those should be harmless:

kernel: audit: type=1400 audit(1621335486.874:1021): apparmor="DENIED" operation="open" profile="snap.pymol-oss.pymol" name="/proc/957988/mountinfo" pid=957988 comm="gmain" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
kernel: audit: type=1300 audit(1621335486.874:1021): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7faebf6a44ff a2=0 a3=0 items=0 ppid=957907 pid=957988 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts7 ses=1 comm="gmain" exe="/snap/pymol-oss/76/usr/bin/python3.8" subj==snap.pymol-oss.pymol (enforce) key=(null)
kernel: audit: type=1327 audit(1621335486.874:1021): proctitle=2F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F62696E2F707974686F6E332E38002F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F6C69622F707974686F6E332F646973742D7061636B616765732F70796D6F6C2F5F5F696E69745F5F2E7079
kernel: audit: type=1400 audit(1621335486.874:1022): apparmor="DENIED" operation="open" profile="snap.pymol-oss.pymol" name="/etc/fstab" pid=957988 comm="python3.8" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
kernel: audit: type=1300 audit(1621335486.874:1022): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7faebf447cce a2=80000 a3=0 items=0 ppid=957907 pid=957988 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts7 ses=1 comm="python3.8" exe="/snap/pymol-oss/76/usr/bin/python3.8" subj==snap.pymol-oss.pymol (enforce) key=(null)
kernel: audit: type=1327 audit(1621335486.874:1022): proctitle=2F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F62696E2F707974686F6E332E38002F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F6C69622F707974686F6E332F646973742D7061636B616765732F70796D6F6C2F5F5F696E69745F5F2E7079
kernel: audit: type=1400 audit(1621335486.874:1023): apparmor="DENIED" operation="open" profile="snap.pymol-oss.pymol" name="/proc/957988/mountinfo" pid=957988 comm="python3.8" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
kernel: audit: type=1300 audit(1621335486.874:1023): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=7faebf447438 a2=80000 a3=0 items=0 ppid=957907 pid=957988 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts7 ses=1 comm="python3.8" exe="/snap/pymol-oss/76/usr/bin/python3.8" subj==snap.pymol-oss.pymol (enforce) key=(null)
kernel: audit: type=1327 audit(1621335486.874:1023): proctitle=2F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F62696E2F707974686F6E332E38002F736E61702F70796D6F6C2D6F73732F63757272656E742F7573722F6C69622F707974686F6E332F646973742D7061636B616765732F70796D6F6C2F5F5F696E69745F5F2E7079
kernel: audit: type=1400 audit(1621335486.874:1024): apparmor="DENIED" operation="open" profile="snap.pymol-oss.pymol" name="/proc/957988/mounts" pid=957988 comm="python3.8" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

For some unknown reason python tried to call sched_setattr, but even after allowing it in seccomp profile, the process still went down with SIGTRAP.

Edit: that SIGTRAP may be result of calling g_error(). So the missing schemas may actually be the cause.

After fiddling around with my two yaml-files i found a “workaround”:

I’ve added the “gnome-3.38-core20” to the yaml-files and added the extension-line to the specific app-section:

plugs:
  gnome-3-38-2004:
    default-provider: gnome-3-38-2004
    interface: content
    target: $SNAP/gnome-platform

[...]

apps:
[..]    
  cura:
    adapter: full
    extensions: [gnome-3-38]
    command: usr/bin/cura
[..]

With these lines the snaps are working again.

2 Likes