Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#7071 closed defect (can't reproduce)

Capturing thumbnail image: Attempt to retrieve context when no valid context

Reported by: chimerax-bug-report@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Graphics Version:
Keywords: Cc: Greg Couch
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.31
ChimeraX Version: 1.4rc202206032339 (2022-06-03 23:39:42 UTC)
Description
(Describe the actions that caused this problem to occur here)

Log:
UCSF ChimeraX version: 1.4rc202206032339 (2022-06-03)  
© 2016-2022 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open RS.pdb

Chain information for RS.pdb #1  
---  
Chain | Description  
? | No description available  
  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/triggerset.py", line 134, in invoke  
return self._func(self._name, data)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/filehistory.py", line 73, in <lambda>  
t.add_handler('frame drawn', lambda *args, s=self: s.capture_thumbnails_cb())  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/filehistory.py", line 85, in capture_thumbnails_cb  
fs.capture_image(models, ses)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/filehistory.py", line 173, in capture_image  
self.image = models_image(session, models, size)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/filehistory.py", line 235, in models_image  
image = v.image(width, height, camera = c, drawings = models)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 415, in image  
rgba = self.image_rgba(width=width, height=height, supersample=supersample,  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 465, in image_rgba  
self.draw(c, drawings, swap_buffers = False)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 165, in draw  
self._draw_scene(camera, drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 235, in _draw_scene  
draw_opaque(r, opaque_drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1526, in draw_opaque  
_draw_multiple(drawings, renderer, Drawing.OPAQUE_DRAW_PASS)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1539, in _draw_multiple  
d.draw(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 752, in draw  
self.draw_self(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 759, in draw_self  
self._draw_geometry(renderer, opaque_only = any_transp)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 786, in _draw_geometry  
ds.activate_bindings(renderer)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1898, in activate_bindings  
self.update_buffers()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1888, in update_buffers  
bi.bind_shader_variable(b)  
File "/usr/lib/ucsf-chimerax/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/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer  
contextdata.setValue( key, array )  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 58, in setValue  
context = getContext( context )  
File "/usr/lib/ucsf-chimerax/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  
  
Error processing trigger "frame drawn":  
OpenGL.error.Error: Attempt to retrieve context when no valid context  
  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 40, in getContext  
raise error.Error(  
  
See log for complete Python traceback.  
  
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.  
  
Attempt to retrieve context when no valid context  
  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame  
view.draw(check_for_changes = False)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 165, in draw  
self._draw_scene(camera, drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 235, in _draw_scene  
draw_opaque(r, opaque_drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1526, in draw_opaque  
_draw_multiple(drawings, renderer, Drawing.OPAQUE_DRAW_PASS)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1539, in _draw_multiple  
d.draw(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 752, in draw  
self.draw_self(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 759, in draw_self  
self._draw_geometry(renderer, opaque_only = any_transp)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 786, in _draw_geometry  
ds.activate_bindings(renderer)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1898, in activate_bindings  
self.update_buffers()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1888, in update_buffers  
bi.bind_shader_variable(b)  
File "/usr/lib/ucsf-chimerax/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/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer  
contextdata.setValue( key, array )  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/contextdata.py", line 58, in setValue  
context = getContext( context )  
File "/usr/lib/ucsf-chimerax/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 version: 3.3 (Core Profile) Mesa 21.2.6
OpenGL renderer: D3D12 (NVIDIA GeForce GTX 1050 Ti)
OpenGL vendor: Microsoft Corporation

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=
DESKTOP_SESSION=
XDG_SESSION_DESKTOP=
XDG_CURRENT_DESKTOP=
WAYLAND_DISPLAY=wayland-0
DISPLAY=172.25.240.1:0.0
Manufacturer: unknown
Model: unknown
OS: Ubuntu 20.04 focal
Architecture: 64bit ELF
Virtual Machine: wsl
CPU: 8 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Cache Size: 6144 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:          7.7Gi       515Mi       6.1Gi        19Mi       1.1Gi       7.0Gi
	Swap:         2.0Gi          0B       2.0Gi

Graphics:
	unknown

Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.10.1
    backcall: 0.2.0
    blockdiag: 3.0.0
    certifi: 2022.5.18.1
    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.39.1
    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.4rc202206032339
    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.1
    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.1
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.18.3
    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.7.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.9
    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: 23.1.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

Change History (3)

comment:1 by Eric Pettersen, 3 years ago

Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCapturing thumbnail image: Attempt to retrieve context when no valid context

comment:2 by Tom Goddard, 3 years ago

Resolution: can't reproduce
Status: assignedclosed

Capturing an image made the graphics context current without errors, but then glVertexAttribPointer() call claimed there was no current context. Maybe a driver problem. I recall an OpenGL context can in rare cases become invalid, maybe for example when the user connects an external display and closes the laptop lid and the display is now being driven by a different GPU. Never found out if this really happens. Would not be too surprised on Linux.

comment:3 by Tom Goddard, 3 years ago

Cc: Greg Couch added

Aha, this is also on Wayland. I thought our ChimeraX 1.4 detect Wayland and set an environment variable to use X11 emulation.

Note: See TracTickets for help on using tickets.