Opened 9 months ago

Closed 9 months ago

#16600 closed defect (fixed)

ChimeraX fails to start on Rocky 9

Reported by: Greg Couch Owned by: Greg Couch
Priority: major Milestone:
Component: Platform Version:
Keywords: Cc: Zach Pearson, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

On a fresh, fully updated, Rocky 9 VM with ChimeraX 1.9 installed, it fails to start with:

$ chimerax
NOTE: available bundle cache has not been initialized yet
WARNING: Traceback (most recent call last):
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/core/toolshed/info.py", line 376, in initialize
    api._api_caller.initialize(api, session, self)
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/core/toolshed/__init__.py", line 1411, in initialize
    return cls._get_func(api, "initialize")(session, bi)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/bundle.py", line 14, in initialize
    from chimerax.segmentations.view.cmd import register_view_triggers
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/view/__init__.py", line 13, in <module>
    from chimerax.segmentations.view.ui import views, FourPanelView
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/view/ui.py", line 1, in <module>
    from chimerax.segmentations.ui.orthoplanes import PlaneViewer, PlaneViewerManager, Axis
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/ui/orthoplanes.py", line 61, in <module>
    from ..graphics import (
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/graphics/__init__.py", line 1, in <module>
    from .view import OrthoplaneView
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/segmentations/graphics/view.py", line 11, in <module>
    from chimerax.graphics import gllist
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/graphics/gllist.py", line 71, in <module>
    wrap_opengl_routines(globals())
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/graphics/gllist.py", line 22, in wrap_opengl_routines
    from OpenGL import GL
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/OpenGL/GL/__init__.py", line 4, in <module>
    from OpenGL.GL.VERSION.GL_1_1 import *
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/OpenGL/GL/VERSION/GL_1_1.py", line 14, in <module>
    from OpenGL.raw.GL.VERSION.GL_1_1 import *
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/OpenGL/raw/GL/VERSION/GL_1_1.py", line 7, in <module>
    from OpenGL.raw.GL import _errors
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/OpenGL/raw/GL/_errors.py", line 4, in <module>
    _error_checker = _ErrorChecker( _p, _p.GL.glGetError )
                                        ^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'glGetError'

ERROR: Bundle 'ChimeraX-Segmentations' custom initialization failed
NOTE: Traceback (most recent call last):  
  File "<frozen runpy>", line 198, in _run_module_as_main  
  File "<frozen runpy>", line 88, in _run_code  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/core/__main__.py", line 1217, in <module>  
    exit_code = init(sys.argv)  
                ^^^^^^^^^^^^^^  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/core/__main__.py", line 825, in init  
    sess.ui.build()  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/ui/gui.py", line 244, in build  
    self.main_window = mw = MainWindow(self, self.session)  
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/ui/gui.py", line 517, in __init__  
    self.graphics_window = g = GraphicsWindow(self._stack, ui, stereo)  
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/ui/graphics.py", line 36, in __init__  
    oc = OpenGLContext(self, ui.primaryScreen(), use_stereo = stereo)  
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/graphics/opengl.py", line 60, in __init__  
    _initialize_pyopengl() # Set global GL module.  
    ^^^^^^^^^^^^^^^^^^^^^^  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/graphics/opengl.py", line 375, in _initialize_pyopengl  
    import OpenGL.GL  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/OpenGL/GL/__init__.py", line 4, in <module>  
    from OpenGL.GL.VERSION.GL_1_1 import *  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/OpenGL/GL/VERSION/GL_1_1.py", line 14, in <module>  
    from OpenGL.raw.GL.VERSION.GL_1_1 import *  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/OpenGL/raw/GL/VERSION/GL_1_1.py", line 7, in <module>  
    from OpenGL.raw.GL import _errors  
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/OpenGL/raw/GL/_errors.py", line 4, in <module>  
    _error_checker = _ErrorChecker( _p, _p.GL.glGetError )  
                                        ^^^^^^^^^^^^^^^^  
AttributeError: 'NoneType' object has no attribute 'glGetError'  
  

BUG: AttributeError: 'NoneType' object has no attribute 'glGetError'  
  
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/OpenGL/raw/GL/_errors.py", line 4, in  
_error_checker = _ErrorChecker( _p, _p.GL.glGetError )  
^^^^^^^^^^^^^^^^  
  
_See log for complete Python traceback._  
  

NOTE: Exception ignored in: <function OpenGLContext.__del__ at 0x7fd142f1b2e0>
Traceback (most recent call last):
  File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 85, in __del__
    if not self._deleted:
           ^^^^^^^^^^^^^
AttributeError: 'OpenGLContext' object has no attribute '_deleted'

glxinfo returns:

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0x15ad)
    Device: SVGA3D; build: RELEASE;  LLVM; (0x405)
    Version: 24.1.2
    Accelerated: no
    Video memory: 1MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.3
    Max compat profile version: 4.3
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: SVGA3D; build: RELEASE;  LLVM;
OpenGL version string: 4.3 (Compatibility Profile) Mesa 24.1.2

More information:

$ ldd /usr/lib64/libGL.so.1
	linux-vdso.so.1 (0x00007fffd0716000)
	libGLX.so.0 => /lib64/libGLX.so.0 (0x00007ff5b629b000)
	libX11.so.6 => /lib64/libX11.so.6 (0x00007ff5b6153000)
	libXext.so.6 => /lib64/libXext.so.6 (0x00007ff5b613e000)
	libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007ff5b6086000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ff5b5e00000)
	libxcb.so.1 => /lib64/libxcb.so.1 (0x00007ff5b605b000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff5b6360000)
	libXau.so.6 => /lib64/libXau.so.6 (0x00007ff5b6053000)
$ env | grep DISPLAY
WAYLAND_DISPLAY=wayland-0
GNOME_SETUP_DISPLAY=:1
DISPLAY=:0

Change History (4)

comment:1 by Greg Couch, 9 months ago

After "unset WAYLAND_DISPLAY", ChimeraX starts up with UI and buggy graphics:

$ chimerax
NOTE: available bundle cache has not been initialized yet
WARNING: Failed to load vulkan: Cannot load library vulkan: vulkan: cannot open shared object file: No such file or directory
WARNING: initInstance: No Vulkan library available
WARNING: Failed to create platform Vulkan instance
WARNING: Unable to detect GPU vendor.

and Report a Bug shows that the Qt platform is wayland. I expected the Qt platform to be be xcb if XWayland is being used.

comment:2 by pett, 9 months ago

Component: UnassignedPlatform

comment:3 by Greg Couch, 9 months ago

Updating to PyQt 6.8 and Qt 6.8.1 doesn't fix it.

comment:4 by Greg Couch, 9 months ago

Resolution: fixed
Status: assignedclosed

The workaround to force XWayland, appears to not be needed anymore. So removing it.

Note: See TracTickets for help on using tickets.