Opened 4 years ago
Closed 4 years ago
#6770 closed defect (fixed)
Gnome: OpenGL.error.Error: Attempt to retrieve context when no valid context
| Reported by: | Owned by: | Greg Couch | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Platform | Version: | |
| Keywords: | Cc: | chimera-programmers | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-5.17.4-200.fc35.x86_64-x86_64-with-glibc2.34
ChimeraX Version: 1.4.dev202205030131 (2022-05-03 01:31:04 UTC)
Description
I just installed chimerax-daily this error pops up.
(attaching the log file from the log window)
Log:
You can double click a model's Name or ID in the model panel to edit those
fields
UCSF ChimeraX version: 1.4.dev202205030131 (2022-05-03)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
Updating list of available bundles failed: [Errno -2] Name or service not
known
Traceback (most recent call last):
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 84, in _expose_event
self.status(self._last_message, self._last_color)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 151, in status
self._draw_text(msg, color, secondary)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 161, in _draw_text
draw_overlays(dlist, self._renderer)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1579, in draw_overlays
_draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1539, in _draw_multiple
d.draw(renderer, draw_pass)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 752, in draw
self.draw_self(renderer, draw_pass)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 763, in draw_self
self._draw_geometry(renderer, transparent_only = any_opaque)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 786, in _draw_geometry
ds.activate_bindings(renderer)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1898, in activate_bindings
self.update_buffers()
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1888, in update_buffers
bi.bind_shader_variable(b)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 2514, in bind_shader_variable
GL.glVertexAttribPointer(attr_id, ncomp, gtype, normalize, 0, None)
File "src/latebind.pyx", line 51, in OpenGL_accelerate.latebind.Curry.__call__
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer
contextdata.setValue( key, array )
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 58, in setValue
context = getContext( context )
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
OpenGL.error.Error: Attempt to retrieve context when no valid context
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
See log for complete Python traceback.
Traceback (most recent call last):
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 84, in _expose_event
self.status(self._last_message, self._last_color)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 151, in status
self._draw_text(msg, color, secondary)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 161, in _draw_text
draw_overlays(dlist, self._renderer)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1579, in draw_overlays
_draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1539, in _draw_multiple
d.draw(renderer, draw_pass)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 752, in draw
self.draw_self(renderer, draw_pass)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 763, in draw_self
self._draw_geometry(renderer, transparent_only = any_opaque)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 786, in _draw_geometry
ds.activate_bindings(renderer)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1898, in activate_bindings
self.update_buffers()
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1888, in update_buffers
bi.bind_shader_variable(b)
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 2514, in bind_shader_variable
GL.glVertexAttribPointer(attr_id, ncomp, gtype, normalize, 0, None)
File "src/latebind.pyx", line 51, in OpenGL_accelerate.latebind.Curry.__call__
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer
contextdata.setValue( key, array )
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 58, in setValue
context = getContext( context )
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
OpenGL.error.Error: Attempt to retrieve context when no valid context
File "/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
See log for complete Python traceback.
OpenGL version: 4.6 (Core Profile) Mesa 21.3.8
OpenGL renderer: Mesa Intel(R) Xe Graphics (TGL GT2)
OpenGL vendor: Intel
Python: 3.9.11
Locale: en_US.UTF-8
Qt version: PyQt6 6.3.0, Qt 6.3.0
Qt runtime version: 6.3.0
Qt platform: wayland
XDG_SESSION_TYPE=wayland
DESKTOP_SESSION=gnome
XDG_SESSION_DESKTOP=gnome
XDG_CURRENT_DESKTOP=GNOME
WAYLAND_DISPLAY=wayland-0
GNOME_SETUP_DISPLAY=:1
DISPLAY=:0
Manufacturer: LENOVO
Model: 82FE
OS: Fedora Linux 35
Architecture: 64bit ELF
Virtual Machine: none
CPU: 8 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
Cache Size: 12288 KB
Memory:
total used free shared buff/cache available
Mem: 7.6Gi 2.2Gi 843Mi 654Mi 4.5Gi 4.4Gi
Swap: 7.6Gi 0B 7.6Gi
Graphics:
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
Subsystem: Lenovo Device [17aa:3f18]
Kernel driver in use: i915
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.10.1
backcall: 0.2.0
blockdiag: 3.0.0
certifi: 2021.10.8
cftime: 1.6.0
charset-normalizer: 2.0.12
ChimeraX-AddCharge: 1.2.3
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.1
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.4.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.38.2
ChimeraX-AtomicLibrary: 7.0
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.1
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.7
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.2
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.1
ChimeraX-CommandLine: 1.2.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.4.dev202205030131
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.3.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.1.5
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.2
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.1.2
ChimeraX-Help: 1.2
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0
ChimeraX-Label: 1.1.1
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 2.0.6
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.7
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.5.5
ChimeraX-ModelPanel: 1.3.2
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.2
ChimeraX-OpenCommand: 1.9
ChimeraX-PDB: 2.6.6
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.6
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.1
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.8
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.0.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.18
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.1.2
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.26
debugpy: 1.6.0
decorator: 5.1.1
distro: 1.6.0
docutils: 0.17.1
entrypoints: 0.4
filelock: 3.4.2
fonttools: 4.33.3
funcparserlib: 1.0.0
grako: 3.16.5
h5py: 3.6.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.27
imagecodecs: 2021.11.20
imagesize: 1.3.0
ipykernel: 6.6.1
ipython: 7.31.1
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.0.3
jupyter-client: 7.1.0
jupyter-core: 4.10.0
kiwisolver: 1.4.2
line-profiler: 3.4.0
lxml: 4.7.1
lz4: 3.1.10
MarkupSafe: 2.1.1
matplotlib: 3.5.1
matplotlib-inline: 0.1.3
msgpack: 1.0.3
nest-asyncio: 1.5.5
netCDF4: 1.5.8
networkx: 2.6.3
numexpr: 2.8.1
numpy: 1.22.1
openvr: 1.16.802
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 9.0.1
pip: 21.3.1
pkginfo: 1.8.2
prompt-toolkit: 3.0.29
psutil: 5.9.0
ptyprocess: 0.7.0
pycollada: 0.7.2
pydicom: 2.2.2
Pygments: 2.11.2
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.8
PyQt6-commercial: 6.3.0
PyQt6-Qt6: 6.3.0
PyQt6-sip: 13.3.1
PyQt6-WebEngine-commercial: 6.3.0
PyQt6-WebEngine-Qt6: 6.3.0
python-dateutil: 2.8.2
pytz: 2022.1
pyzmq: 22.3.0
qtconsole: 5.3.0
QtPy: 2.1.0
RandomWords: 0.3.0
requests: 2.27.1
scipy: 1.7.3
setuptools: 59.8.0
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.3.2
sphinx-autodoc-typehints: 1.15.2
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
suds-community: 1.0.0
tables: 3.7.0
tifffile: 2021.11.2
tinyarray: 1.2.4
tornado: 6.1
traitlets: 5.1.1
urllib3: 1.26.9
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.1
wheel-filename: 1.3.0
File attachment: error_opening_chimeraxdaily
Attachments (1)
Change History (10)
by , 4 years ago
| Attachment: | error_opening_chimeraxdaily added |
|---|
comment:1 by , 4 years ago
error disappears if I restart and change the session from (Gnome .. ie. Wayland) to (Gnome on Xorg). El mar, 3 may 2022 a la(s) 21:11, ChimeraX (ChimeraX-bugs-admin@cgl.ucsf.edu) escribió:
follow-up: 1 comment:2 by , 4 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Platform |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Gnome: OpenGL.error.Error: Attempt to retrieve context when no valid context |
Reported by Murpholino Peligro
comment:3 by , 4 years ago
We ask Qt 6 to create a QOpenGLContext which works and QOpenGLContext.makeCurrent() works, but then PyOpenGL tries to use the context and it fails. That is probably because on Wayland Qt 6 made an EGL context and PyOpenGL is looking for an active OpenGL context.
The easiest solution would be if we can tell Qt6 to gives us an OpenGL context instead of an EGL context. Maybe that can be done with a Qt environment variable. The reporter got ChimeraX to work by switching the desktop from Gnome Wayland to Gnome on Xorg, but that is a heavy handed solution.
Another approach would be to replace our use of PyOpenGL with the Qt OpenGL API if that works with an EGL context. That approach could require a lot of changes because PyOpenGL handles numpy arrays and pointer arguments to OpenGL calls and those will likely be different in the Qt OpenGL.
A third approach is to tell PyOpenGL to use EGL. PyOpenGL claims to handle EGL. But PyOpenGL is barely maintained so may run into trouble using obscure features.
Here is some useful info on the interplay between the Wayland compositor (which replaces X11) and OpenGL and XWayland.
https://unix.stackexchange.com/questions/511134/why-wayland-is-using-opengl-es-instead-of-opengl
In order to explore any of these solutions we would need to have a Linux system using Wayland.
comment:4 by , 4 years ago
We could try Wayland on our Ubuntu 20.04 machine minsky.
https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop
comment:5 by , 4 years ago
Murpholino,
For now, ChimeraX needs to use XWayland. So the reported Qt platform should be xcb not wayland. So how are you forcing ChimeraX to use Wayland? Are you seeing the QT_PLATFORM environment variable? Regardless, if you don't force it, it should work.
comment:6 by , 4 years ago
The reporter said he switched to Gnome on Xorg to get it to work. We should make ChimeraX request XWayland if there is a way to do that.
follow-up: 6 comment:7 by , 4 years ago
Yes, ChimeraX should automatically be requesting XWayland and it does under some circumstances. We need to figure out when it does and doesn't do the right thing.
comment:8 by , 4 years ago
The workaround is to set the QT_QPA_PLATFORM to xcb before running ChimeraX. For example:
env QT_QPA_PLATFORM=xcb chimerax
comment:9 by , 4 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Put setting QT_QPA_PLATFORM to xcb, when the XDG_SESSION_TYPE is wayland, in the 1.4 release candidate and the daily builds
Added by email2trac