Opened 4 years ago

Closed 4 years ago

#6195 closed defect (can't reproduce)

Attempt to retrieve context when no valid context

Reported by: sabarik@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Graphics Version:
Keywords: Cc: Greg Couch, tony.schaefer@…
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-5.10.0-1057-oem-x86_64-with-glibc2.14
ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC)
Description
Added a bond distance to a metalloprotein active site model.

Log:
UCSF ChimeraX version: 1.2.5 (2021-05-24)  
© 2016-2021 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  
Thank you for registering your copy of ChimeraX. By providing the information
requested you will be helping us document the impact this software is having
in the scientific community. The information you supplied will only be used
for reporting summary usage statistics; no individual data will be released.  
sabarik@colostate.edu is subscribed to the ChimeraX discussion list  
sabarik@colostate.edu is subscribed to the ChimeraX announcements list  

> ui tool show "Build Structure"

> ui tool show "Basic Actions"

> open
> /home/sabari/Documents/College/GradSchool/CSU/Coursework/CHEM578AComputationalChemistry/GH61/Step3/GH61_Active_Step3_Ch1_Singlet.log

Opened GH61_Active_Step3_Ch1_Singlet.log as a Gaussian output file  

> ui tool show Distances

> select add /a:1@N1

1 atom, 1 residue, 1 model selected  

> select add /a:1@Cu1

2 atoms, 1 residue, 1 model selected  

> distance /a:1@N1 /a:1@Cu1

Distance between /a UNK 1 N1 and Cu1: 1.893Å  

> select add /a:1@N5

3 atoms, 1 residue, 1 model selected  

> select clear

> select /a:1@N5

1 atom, 1 residue, 1 model selected  

> select add /a:1@Cu1

2 atoms, 1 residue, 1 model selected  

> distance /a:1@N5 /a:1@Cu1

Distance between /a UNK 1 N5 and Cu1: 1.901Å  

> select clear

> select /a:1@Cu1

1 atom, 1 residue, 1 model selected  

> select add /a:1@O4

2 atoms, 1 residue, 1 model selected  

> distance /a:1@Cu1 /a:1@O4

Distance between /a UNK 1 Cu1 and O4: 1.985Å  

> select clear

> select /a:1@Cu1

1 atom, 1 residue, 1 model selected  

> select add /a:1@N2

2 atoms, 1 residue, 1 model selected  

> distance /a:1@Cu1 /a:1@N2

Distance between /a UNK 1 Cu1 and N2: 1.887Å  
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.  
  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.8/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.8/site-
packages/chimerax/graphics/view.py", line 165, in draw  
self._draw_scene(camera, drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/view.py", line 250, in _draw_scene  
draw_on_top(r, on_top_drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 1575, in draw_on_top  
_draw_multiple(drawings, renderer, Drawing.LAST_DRAW_PASS)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 1511, in _draw_multiple  
d.draw(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 751, in draw  
self.draw_self(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 767, in draw_self  
self._draw_geometry(renderer)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 785, in _draw_geometry  
ds.activate_bindings(renderer)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 1858, in activate_bindings  
self.update_buffers()  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/drawing.py", line 1848, in update_buffers  
bi.bind_shader_variable(b)  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/chimerax/graphics/opengl.py", line 2486, 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.8/site-
packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer  
contextdata.setValue( key, array )  
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-
packages/OpenGL/contextdata.py", line 58, in setValue  
context = getContext( context )  
File "/usr/lib/ucsf-chimerax/lib/python3.8/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.0 NVIDIA 510.47.03
OpenGL renderer: NVIDIA GeForce GTX 1650 Ti with Max-Q Design/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: LENOVO
Model: 20TK001EUS
OS: Ubuntu 20.04 focal
Architecture: 64bit ELF
Virutal Machine: none
CPU: 12 Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
Cache Size: 12288 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:           23Gi        12Gi       524Mi       437Mi        10Gi        10Gi
	Swap:         2.0Gi        44Mi       2.0Gi

Graphics:
	00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics [8086:9bc4] (rev 05)	
	Subsystem: Lenovo Device [17aa:22c0]	
	Kernel driver in use: i915
Locale: ('en_US', 'UTF-8')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.9.1
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2020.12.5
    cftime: 1.5.0
    chardet: 3.0.4
    ChimeraX-AddCharge: 1.0.1
    ChimeraX-AddH: 2.1.3
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.13.2
    ChimeraX-AtomicLibrary: 3.1.3
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AtomSearchLibrary: 1.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 1.1
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.5.2
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.1
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.1
    ChimeraX-Clipper: 0.16.0
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.2.1
    ChimeraX-CommandLine: 1.1.4
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.2.5
    ChimeraX-CoreFormats: 1.0
    ChimeraX-coulombic: 1.1.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0
    ChimeraX-DataFormats: 1.1
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1.3
    ChimeraX-DistUI: 1.0
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.0
    ChimeraX-Hbonds: 2.1
    ChimeraX-Help: 1.1
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.0
    ChimeraX-ImageFormats: 1.1
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.2.2
    ChimeraX-Label: 1.0
    ChimeraX-LinuxSupport: 1.0
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.2
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.0.2
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.0
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 1.2.1
    ChimeraX-MDcrds: 2.2
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.3
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.0.1
    ChimeraX-ModelPanel: 1.0.1
    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.1
    ChimeraX-OpenCommand: 1.5
    ChimeraX-PDB: 2.4.1
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.1
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0.1
    ChimeraX-PubChem: 2.0.1
    ChimeraX-ReadPbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.4
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SeqView: 2.3
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.0
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.0.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.3.1
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.0.1
    ChimeraX-ToolshedUtils: 1.2
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.7.6
    ChimeraX-uniprot: 2.1
    ChimeraX-UnitCell: 1.0
    ChimeraX-ViewDockX: 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.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.3
    comtypes: 1.1.7
    cxservices: 1.0
    cycler: 0.10.0
    Cython: 0.29.21
    decorator: 5.0.9
    distlib: 0.3.1
    distro: 1.5.0
    docutils: 0.16
    filelock: 3.0.12
    funcparserlib: 0.3.6
    grako: 3.16.5
    h5py: 2.10.0
    html2text: 2020.1.16
    idna: 2.10
    ihm: 0.17
    imagecodecs: 2020.5.30
    imagesize: 1.2.0
    ipykernel: 5.3.4
    ipython: 7.18.1
    ipython-genutils: 0.2.0
    jedi: 0.17.2
    Jinja2: 2.11.2
    jupyter-client: 6.1.7
    jupyter-core: 4.7.1
    kiwisolver: 1.3.1
    line-profiler: 2.1.2
    lxml: 4.6.2
    lz4: 3.1.0
    MarkupSafe: 2.0.1
    matplotlib: 3.3.2
    msgpack: 1.0.0
    netCDF4: 1.5.4
    networkx: 2.5
    numexpr: 2.7.3
    numpy: 1.19.2
    numpydoc: 1.1.0
    openvr: 1.14.1501
    packaging: 20.9
    ParmEd: 3.2.0
    parso: 0.7.1
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 7.2.0
    pip: 21.0.1
    pkginfo: 1.5.0.1
    prompt-toolkit: 3.0.18
    psutil: 5.7.2
    ptyprocess: 0.7.0
    pycollada: 0.7.1
    pydicom: 2.0.0
    Pygments: 2.7.1
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5-commercial: 5.15.2
    PyQt5-sip: 12.8.1
    PyQtWebEngine-commercial: 5.15.2
    python-dateutil: 2.8.1
    pytz: 2021.1
    pyzmq: 22.0.3
    qtconsole: 4.7.7
    QtPy: 1.9.0
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.5.2
    Send2Trash: 1.8.0
    SEQCROW: 1.3
    setuptools: 50.3.2
    sfftk-rw: 0.6.7.dev1
    six: 1.15.0
    snowballstemmer: 2.1.0
    sortedcontainers: 2.2.2
    Sphinx: 3.2.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.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-jurko: 0.6
    tables: 3.6.1
    tifffile: 2020.9.3
    tinyarray: 1.2.3
    tornado: 6.1
    traitlets: 5.0.5
    urllib3: 1.25.11
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.36.0
    wheel-filename: 1.2.0

Change History (6)

comment:1 by Eric Pettersen, 4 years ago

Cc: Greg Couch added
Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionAttempt to retrieve context when no valid context

Reported by Sabari Kumar

comment:2 by Tom Goddard, 4 years ago

Cc: tony.schaefer@… added

Do you see the atoms you opened from the Gaussian .log file? Then it looks like you measure a distance and it gives you this OpenGL error.

Info online suggests that is caused by ChimeraX trying to draw in the wrong thread

https://stackoverflow.com/questions/61122766/python-opengl-no-valid-context-in-thread

I don't know how that could happen. It is supposed to always draw in the main thread.

ChimeraX does not open .log files. I guess the SEQCROW plugin is opening it. And I am wondering if SEQCROW has something to do with this bizarre error where an attempt is made to draw in the wrong thread.

I am baffled by how the Python stack trace starts in the middle of the draw_new_frame() code without indicating who called draw_new_frame().

Do you get this kind of error if you just open a PDB file, for example, "open 1a0m", then try to measure distance and do similar things to what you did in this session that produced the error?

Last edited 4 years ago by Tom Goddard (previous) (diff)

in reply to:  3 ; comment:3 by Tony Schaefer, 4 years ago

The coordinates in the output file might have NaN's. This usually results in graphics issues for me, but I have not seen this particular error. SEQCROW won't print any errors when that happens (though it probably should). The Gaussian output file should only open an atomic structure, a pseudobond model for the coordination bonds to Cu, and maybe another pseudobond model if this is a frequency output file with vibrational modes with imaginary frequencies.

Perhaps it occurs during a trigger firing? It looks like no SEQCROW tools were opened, so the only trigger I can think of that could be firing involving SEQCROW is ADD_MODELS (from chimerax.core.models).

SEQCROW uses this trigger in a couple of places:

  1.  applying one of SEQCROW's graphical presets after a model is opened. This would not appear in the log. Although it fires after all new models, graphics settings only change for models added from files opened by SEQCROW.
  2.  trying to apply some commands when a new model is opened. These commands would appear in the log.
  3.  checking to see if the file that was opened has an associated AaronTools FileReader
  4.  open useful tools when files with certain data are opened (e.g. normal mode tool when opening a frequency output file). This should appear in the log.

I don't know anything about OpenGL, but maybe it's #1?. It looks like there's currently a bug in SEQCROW's presets where they change lighting options during this trigger call. I only wanted the lighting to change when the preset is applied using the menu. When presets change lighting options, they use:

session.main_view.update_lighting = True
session.main_view.redraw_needed = True

These triggers only fire after the file is opened and the first distance command, as subsequent distances don't create a new model. The error seems to come quite a while after these events, though.

Tony

________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Friday, February 18, 2022 12:59 AM
Cc: goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; sabarik@colostate.edu <sabarik@colostate.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #6195: Attempt to retrieve context when no valid context

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#6195: Attempt to retrieve context when no valid context
--------------------------------+-------------------------
          Reporter:  sabarik@…  |      Owner:  Tom Goddard
              Type:  defect     |     Status:  assigned
          Priority:  normal     |  Milestone:
         Component:  Graphics   |    Version:
        Resolution:             |   Keywords:
        Blocked By:             |   Blocking:
Notify when closed:             |   Platform:  all
           Project:  ChimeraX   |
--------------------------------+-------------------------
Changes (by Tom Goddard):

 * cc: tony.schaefer@… (added)


Comment:

 Do you see the atoms you opened from the Gaussian .log file?  Then it
 looks like you measure a distance and it gives you this OpenGL error.

 Info online suggests that is caused by ChimeraX trying to draw in the
 wrong thread

    https://stackoverflow.com/questions/61122766/python-opengl-no-valid-
 context-in-thread

 I know how that could happen.  It is supposed to always draw in the main
 thread.

 ChimeraX does not open .log files.  I guess the SEQCROW plugin is opening
 it.  And I am wondering if SEQCROW has something to do with this bizarre
 error where an attempt is made to draw in the wrong thread.

 I am baffled by how the Python stack trace starts in the middle of the
 draw_new_frame() code without indicating who called draw_new_frame().


 Do you get this kind of error if you just open a PDB file, for example,
 "open 1a0m", then try to measure distance and do similar things to what
 you did in this session that produced the error?

--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/6195#comment:2>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

in reply to:  4 ; comment:4 by Sabari.Kumar@…, 4 years ago

 Hi all,

I'm not seeing any errors when I just open a pdb file. In addition, this is the first time I've run into this error - I've measured bond distances in that Gaussian output file with Chimera before.

Best,
Sabari Kumar
(he / him / his)
PhD Student, Department of Chemistry
Kim Group<https://bioenergy-kimlab.org/>
Colorado State University
sabarik@colostate.edu
________________________________
From: Anthony James Schaefer <tony.schaefer@uga.edu>
Sent: Friday, February 18, 2022 11:18 AM
To: ChimeraX-bugs@cgl.ucsf.edu <ChimeraX-bugs@cgl.ucsf.edu>
Cc: goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Kumar,Sabari <Sabari.Kumar@colostate.edu>
Subject: Re: [ChimeraX] #6195: Attempt to retrieve context when no valid context


** Caution: EXTERNAL Sender **

The coordinates in the output file might have NaN's. This usually results in graphics issues for me, but I have not seen this particular error. SEQCROW won't print any errors when that happens (though it probably should). The Gaussian output file should only open an atomic structure, a pseudobond model for the coordination bonds to Cu, and maybe another pseudobond model if this is a frequency output file with vibrational modes with imaginary frequencies.

Perhaps it occurs during a trigger firing? It looks like no SEQCROW tools were opened, so the only trigger I can think of that could be firing involving SEQCROW is ADD_MODELS (from chimerax.core.models).

SEQCROW uses this trigger in a couple of places:

  1.  applying one of SEQCROW's graphical presets after a model is opened. This would not appear in the log. Although it fires after all new models, graphics settings only change for models added from files opened by SEQCROW.
  2.  trying to apply some commands when a new model is opened. These commands would appear in the log.
  3.  checking to see if the file that was opened has an associated AaronTools FileReader
  4.  open useful tools when files with certain data are opened (e.g. normal mode tool when opening a frequency output file). This should appear in the log.

I don't know anything about OpenGL, but maybe it's #1?. It looks like there's currently a bug in SEQCROW's presets where they change lighting options during this trigger call. I only wanted the lighting to change when the preset is applied using the menu. When presets change lighting options, they use:

session.main_view.update_lighting = True
session.main_view.redraw_needed = True

These triggers only fire after the file is opened and the first distance command, as subsequent distances don't create a new model. The error seems to come quite a while after these events, though.

Tony

________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Friday, February 18, 2022 12:59 AM
Cc: goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; sabarik@colostate.edu <sabarik@colostate.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #6195: Attempt to retrieve context when no valid context

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#6195: Attempt to retrieve context when no valid context
--------------------------------+-------------------------
          Reporter:  sabarik@…  |      Owner:  Tom Goddard
              Type:  defect     |     Status:  assigned
          Priority:  normal     |  Milestone:
         Component:  Graphics   |    Version:
        Resolution:             |   Keywords:
        Blocked By:             |   Blocking:
Notify when closed:             |   Platform:  all
           Project:  ChimeraX   |
--------------------------------+-------------------------
Changes (by Tom Goddard):

 * cc: tony.schaefer@… (added)


Comment:

 Do you see the atoms you opened from the Gaussian .log file?  Then it
 looks like you measure a distance and it gives you this OpenGL error.

 Info online suggests that is caused by ChimeraX trying to draw in the
 wrong thread

    https://stackoverflow.com/questions/61122766/python-opengl-no-valid-<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F61122766%2Fpython-opengl-no-valid-&data=04%7C01%7CSabari.Kumar%40colostate.edu%7C06610510da784150292508d9f30b078e%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637808052155386708%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=wjKkX0ppqCGrUFmd6Hd94DZFMK%2F3HEcFL9m7jRq%2FHH8%3D&reserved=0>
 context-in-thread

 I know how that could happen.  It is supposed to always draw in the main
 thread.

 ChimeraX does not open .log files.  I guess the SEQCROW plugin is opening
 it.  And I am wondering if SEQCROW has something to do with this bizarre
 error where an attempt is made to draw in the wrong thread.

 I am baffled by how the Python stack trace starts in the middle of the
 draw_new_frame() code without indicating who called draw_new_frame().


 Do you get this kind of error if you just open a PDB file, for example,
 "open 1a0m", then try to measure distance and do similar things to what
 you did in this session that produced the error?

--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/6195#comment:2<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.rbvi.ucsf.edu%2Ftrac%2FChimeraX%2Fticket%2F6195%23comment%3A2&data=04%7C01%7CSabari.Kumar%40colostate.edu%7C06610510da784150292508d9f30b078e%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637808052155386708%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=7GnoJJFy1%2BGZr5wa3oqWUAUoXrYoRusPeRRJmen0BV8%3D&reserved=0>>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.rbvi.ucsf.edu%2Fchimerax%2F&data=04%7C01%7CSabari.Kumar%40colostate.edu%7C06610510da784150292508d9f30b078e%7Cafb58802ff7a4bb1ab21367ff2ecfc8b%7C0%7C0%7C637808052155386708%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=sCNuljAyBIZWhN220TMwyhCg8vgYKpzMsVT2CV%2FV2gk%3D&reserved=0>>
ChimeraX Issue Tracker

comment:5 by Tom Goddard, 4 years ago

Thanks for the info Tony and Sabari.

I am pretty sure the OpenGL error is not related to NaN values. It could be a graphics driver bug. I have never seen this error. It really looks like a bizarre problem where somehow the graphics is trying to render in the wrong thread. But ChimeraX is in general single-threaded. But some Qt window toolkit callback could conceivably call back in a different thread.

Since Sabari does not see this with a PDB file or other times opening a Gaussian *.log file it may be some rare timing issue where the graphics redrawing somehow fired off while a separate thread was running. This also should never happen since the Qt event loop should never be run from a separate thread. Tony, I trust SEQCROW never explicitly asks Qt to process events.

May have to mark this as "can't reproduce" until we see more reports of this error and get more clues.

comment:6 by Tom Goddard, 4 years ago

Resolution: can't reproduce
Status: assignedclosed
Note: See TracTickets for help on using tickets.