pemsley / coot

Software for macromolecular model-building
http://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/
GNU General Public License v3.0
121 stars 47 forks source link

Coot 1.1.10 crash on startup (linuxbrew) #158

Open rbs-sci opened 2 months ago

rbs-sci commented 2 months ago

After success with getting Coot 1.1.10 working with @YoshitakaMo's homebrew formula working on an M1 Mac, I thought I'd try it in linuxbrew... since using the build-it-3-3 script always seems to fail during RDKit building with cmake complaining gcc doesn't work (used to work fine with Coot 1.1.03...?). Initial tests in a QEMU KVM were promising; it builds and runs, although I've not tried anything particularly exotic with it yet as the VM is pretty low spec.

As I'm evaluating Ubuntu 24.04 as the new LTS release before shifting our systems to it (probably in October...) the VM was based on that. Also works with Mint 22 Cinnamon (based on Ubuntu 24.04).

However, on baremetal Mint 21 (based on Ubuntu 22.04) I get the following crash (and yes, FileChooser is installed and schemas are set correctly...):

INFO:: built with GTK 4.14.4
pdd /home/linuxbrew/.linuxbrew/Cellar/coot/1.1.10/share/coot
INFO:: Using Standard CCP4 Refmac dictionary from CLIBD_MON: /opt/ccp4/ccp4-8.0/lib/data/monomers/
There are 243 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/list/mon_lib_list.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/a/ALA.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/a/ASP.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/a/ASN.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/c/CYS.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/g/GLN.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/g/GLY.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/g/GLU.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/p/PHE.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/h/HIS.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/i/ILE.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/l/LYS.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/l/LEU.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/m/MET.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/m/MSE.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/p/PRO.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/a/ARG.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/s/SER.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/t/THR.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/v/VAL.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/t/TRP.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/t/TYR.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/p/PO4.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/s/SO4.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/g/GOL.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/c/CIT.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/e/EDO.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/a/A.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/c/C.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/g/G.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/u/U.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/d/DA.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/d/DC.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/d/DG.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/d/DT.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/h/HOH.cif
There are 2 data in /opt/ccp4/ccp4-8.0/lib/data/monomers/n/NA.cif

(coot-1:40753): GLib-GIO-ERROR **: 14:28:12.532: Settings schema 'org.gtk.gtk4.Settings.FileChooser' is not installed
Stack trace (most recent call last):
#31   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.10/libexec/coot-1", at 0x5cd715faaa24, in _start
#30   Source "../csu/libc-start.c", line 392, in __libc_start_main_impl [0x7e30b8a29e3f]
#29   Source "../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main [0x7e30b8a29d8f]
#28   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.10/libexec/coot-1", at 0x5cd715faa12c, in main
#27   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.10/libexec/coot-1", at 0x5cd715fca05d, in new_startup(int, char**)
#26   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgio-2.0.so.0.8000.4", at 0x7e30b9afaa54, in g_application_run
#25   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d00d62, in g_main_context_iteration
#24   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d00736, in g_main_context_iterate_unlocked.constprop.0
#23   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9cfd552, in g_main_dispatch
#22   Object "/home/linuxbrew/.linuxbrew/Cellar/coot/1.1.10/libexec/coot-1", at 0x5cd715fca442, in new_startup_application_activate(_GtkApplication*, void*)::{lambda(void*)#1}::operator()(void*) const [clone .constprop.0]
#21   Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30b9f052f2, in gtk_builder_add_from_file
#20   Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30b9f0d933, in _gtk_builder_parser_parse_buffer
#19   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d05ad2, in g_markup_parse_context_parse
#18   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d044f7, in emit_start_element
#17   Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30b9f0c553, in start_element
#16   Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30b9f0897e, in _gtk_builder_construct
#15   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98ab5a, in g_object_setv
#14   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98677e, in object_set_property
#13   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98bc2e, in g_object_set_property
#12   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98ab5a, in g_object_setv
#11   Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98677e, in object_set_property
#10   Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30b9f54905, in settings_load
#9    Object "/home/linuxbrew/.linuxbrew/Cellar/gtk4/4.14.4/lib/libgtk-4.so.1.1400.4", at 0x7e30ba10f8c3, in _gtk_file_chooser_get_settings_for_widget
#8    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98a99c, in g_object_new
#7    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98a37b, in g_object_new_valist
#6    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba9883e7, in g_object_new_internal
#5    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgobject-2.0.so.0.8000.4", at 0x7e30ba98677e, in object_set_property
#4    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libgio-2.0.so.0.8000.4", at 0x7e30b9b12855, in g_settings_set_property
#3    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d098c2, in g_log
#2    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d095ce, in g_logv
#1    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d09378, in g_log_default_handler
#0    Object "/home/linuxbrew/.linuxbrew/Cellar/glib/2.80.4/lib/libglib-2.0.so.0.8000.4", at 0x7e30b9d08f2f, in g_log_structured_array
Trace/breakpoint trap (Signal sent by the kernel 0 0)
Trace/breakpoint trap (core dumped)

I'm wondering whether it's getting confused picking up the ccp4-8 monomer libraries, but I don't see why that would be confusing it? It seems to be the linuxbrew Glib and gtk4 which is unhappy. I've hauled a decommissioned box out of the cupboard, will install 24.04 baremetal on that and see if it works. If so, I guess I just bring up my upgrade schedule, at least for systems we do model building on.

Nothing useful in kernel logs or dmesg despite the core dump (maybe hiding in a linuxbrew directory?)

If anyone has any thoughts, 'twould be appreciated.

rbs-sci commented 2 months ago

OK, it runs without the above crash on Ubuntu 24.04 baremetal, but everything is broken. Cryo-EM maps "load" but the screen is blank, PDB files "load" but the screen is blank, PDB files "download" but there is no network activity...

I guess I got my hopes up for linuxbrew. Back to trying to figure out why RDKit tells me gcc can't compile anything (when it's just compiled nearly two dozen other things)...

rbs-sci commented 2 months ago

The complete lack of anything showing up with linuxbrew-Coot appears to be related to which GPU is being used as the primary (24.04 baremetal test system is a hybrid GPU (Intel iGPU with nVidia dGPU, can switch between the two) - with "autodetect" or "Intel" selected, loading maps or models does not display them. With nVidia dGPU selected as primary output, maps and models display correctly.

pemsley commented 2 months ago

@rbs-sci This looks very similar to problems I had when I was trying to use a (new) version of GTK4 that I'd compiled myself. So I don't think that it's a Coot problem - it's a GTK installation problem.

I wrote some (cryptic perhaps) notes about compiling schemas in dnotes - mabye that will be helpful.

hgonomeg commented 2 months ago

Is it possible that Gtk4 is confusing schemas between different Gtk installations?

pemsley commented 2 months ago

@rbs-sci BTW, if/when you get this working, I am curious to know if the OpenGL context for the graphics is antialiased. I have a hope that it will be: https://blog.gtk.org/2024/01/28/new-renderers-for-gtk/

rbs-sci commented 2 months ago

@rbs-sci This looks very similar to problems I had when I was trying to use a (new) version of GTK4 that I'd compiled myself. So I don't think that it's a Coot problem - it's a GTK installation problem.

I wrote some (cryptic perhaps) notes about compiling schemas in dnotes - mabye that will be helpful.

Cheers, Paul, I'll look at that! I initially hypothesised that Gtk4 had had an update between be installing on the VM I was testing on and real hardware, but that does not appear to be the case.

Is it possible that Gtk4 is confusing schemas between different Gtk installations?

Not sure; I don't think so, it's reproducible across clean installs (24.04 works, 22.04 doesn't) and different desktop environments (Ubuntu Gnome, Linux Mint Cinnamon).

...

I'll see if I can figure out what GTK is doing...