Opened 9 months ago
Closed 8 months ago
#16962 closed defect (fixed)
Crash on "xr off" after display sleep with Sony Spatial Reality display
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | VR | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description (last modified by )
The following bug report has been submitted:
Platform: Windows-10-10.0.22631
ChimeraX Version: 1.10.dev202502220014 (2025-02-22 00:14:16 UTC)
Description
Display slept after about 5 minutes idle when connected to Sony Spatial Reality display with "xr on". After waking display ChimeraX menus and commands still functioning but graphics frozen, and Sony display is black. Using "xr off" then causes this crash.
Please describe steps that led to the crash here.
Fatal Python error: Aborted
Current thread 0x0000524c (most recent call first):
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\xr\functions.py", line 271 in destroy_session
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\vive\openxr.py", line 725 in shutdown
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\vive\xr.py", line 746 in close
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\vive\xr.py", line 424 in stop_vr
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\vive\xr.py", line 82 in vr
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\core\commands\cli.py", line 3215 in run
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\cmd_line\tool.py", line 319 in execute
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\cmd_line\tool.py", line 146 in keyPressEvent
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\ui\gui.py", line 339 in event_loop
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\core\__main__.py", line 1054 in init
File "C:\cygwin64\home\goddard\ucsf\chimerax\ChimeraX.app\bin\Lib\site-packages\chimerax\core\__main__.py", line 1217 in
File "", line 88 in _run_code
File "", line 198 in _run_module_as_main
Extension modules: _win32sysloader, win32api, win32com.shell.shell, chimerax.arrays._arrays, numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, chimerax.geometry._geometry, PyQt6.QtCore, PyQt6.QtGui, PyQt6.QtWidgets, PyQt6.QtNetwork, PyQt6.QtPrintSupport, PyQt6.QtWebChannel, PyQt6.QtWebEngineCore, PyQt6.QtWebEngineWidgets, psutil._psutil_windows, chimerax.atomic_lib._load_libs, tinyarray, chimerax.atomic.cymol, chimerax.atomic.cytmpl, lxml._elementpath, lxml.etree, chimerax.surface._surface, chimerax.pdb_lib._load_libs, chimerax.map._map, charset_normalizer.md, requests.packages.charset_normalizer.md, requests.packages.chardet.md, PIL._imaging, OpenGL_accelerate.errorchecker, OpenGL_accelerate.wrapper, OpenGL_accelerate.formathandler, OpenGL_accelerate.arraydatatype, OpenGL_accelerate.latebind, OpenGL_accelerate.vbo, OpenGL_accelerate.numpy_formathandler, OpenGL_accelerate.nones_formathandler, chimerax.mmcif._mmcif, chimerax.mmcif.mmcif, chimerax.atomic._ribbons, chimerax.graphics._graphics, chimerax.pdb._pdbio (total: 53)
===== Log before crash start =====
Startup Messages
---
note | available bundle cache has not been initialized yet
UCSF ChimeraX version: 1.10.dev202502220014 (2025-02-22)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open C:\Users\goddard\Downloads\ChimeraX\PDB\8xps.cif format mmcif
8xps.cif title:
Structure of Nipah virus Bangladesh string G protein ectodomain monomer bound
to single-domain antibody n425 at 3.22 Angstroms overall resolution [more
info...]
Chain information for 8xps.cif #1
---
Chain | Description
A | Nipah virus Bangladesh string G protein
B | single-domain antibody n425
Non-standard residues in 8xps.cif #1
---
BMA — beta-D-mannopyranose (beta-D-mannose; D-mannose; mannose)
MAN — alpha-D-mannopyranose (alpha-D-mannose; D-mannose; mannose)
NAG — 2-acetamido-2-deoxy-beta-D-glucopyranose (N-acetyl-beta-D-glucosamine;
2-acetamido-2-deoxy-beta-D-glucose; 2-acetamido-2-deoxy-D-glucose;
2-acetamido-2-deoxy-glucose; N-ACETYL-D-GLUCOSAMINE)
> xr true
started OpenXR rendering SonySRD System
> ui mousemode right zoom
> label #1
> ui windowfill toggle
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
...
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
xr.wait_frame() or xr.begin_frame() failed
> xr false
===== Log before crash end =====
Log:
Startup Messages
---
note | available bundle cache has not been initialized yet
UCSF ChimeraX version: 1.10.dev202502220014 (2025-02-22)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
OpenGL version: 3.3.0 NVIDIA 560.94
OpenGL renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.11.4
Locale: en_US.cp1252
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: windows
Manufacturer: Dell Inc.
Model: OptiPlex 7000
OS: Microsoft Windows 11 Pro (Build 22631)
Memory: 68,393,086,976
MaxProcessMemory: 137,438,953,344
CPU: 20 12th Gen Intel(R) Core(TM) i7-12700K
OSLanguage: en-US
Installed Packages:
alabaster: 1.0.0
anyio: 4.8.0
appdirs: 1.4.4
asttokens: 3.0.0
auditwheel: 6.2.0
babel: 2.17.0
beautifulsoup4: 4.13.3
blockdiag: 3.0.0
blosc2: 3.1.1
build: 1.2.1
certifi: 2025.1.31
cftime: 1.6.4.post1
charset-normalizer: 3.4.1
ChimeraX-AddCharge: 1.5.18
ChimeraX-AddH: 2.2.6
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.19.1
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Aniso: 1.0.1
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.60.5
ChimeraX-AtomicLibrary: 14.1.13
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.4.0
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.4
ChimeraX-ChangeChains: 1.1
ChimeraX-CheckWaters: 1.4
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.3
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.10.dev202502220014
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.4
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.3
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.4.1
ChimeraX-Hbonds: 2.5
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.3
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.5.1
ChimeraX-Label: 1.1.14
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.3
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.1.7
ChimeraX-MCopy: 1.0
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.14.2
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.18
ChimeraX-ModelPanel: 1.5
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0.3
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-MutationScores: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.2
ChimeraX-NMRSTAR: 1.0.2
ChimeraX-NRRD: 1.2
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.14.1
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.7
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.4
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.2
ChimeraX-ProfileGrids: 1.0.1
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.3
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
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.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.7
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.0
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.2.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.5.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.2.3
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.44
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.4.4
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-vrml: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.4
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.2
comtypes: 1.4.5
contourpy: 1.3.1
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.0.12
debugpy: 1.8.12
decorator: 5.2.1
docutils: 0.21.2
executing: 2.2.0
filelock: 3.17.0
fonttools: 4.56.0
funcparserlib: 2.0.0a0
glfw: 2.8.0
grako: 3.16.5
h11: 0.14.0
h5py: 3.13.0
html2text: 2024.2.26
httpcore: 1.0.7
httpx: 0.28.1
idna: 3.10
ihm: 1.3
imagecodecs: 2024.6.1
imagesize: 1.4.1
ipykernel: 6.29.5
ipython: 8.26.0
ipywidgets: 8.1.5
jedi: 0.19.1
Jinja2: 3.1.5
jupyter_client: 8.6.2
jupyter_core: 5.7.2
jupyterlab_widgets: 3.0.13
kiwisolver: 1.4.8
line_profiler: 4.2.0
lxml: 5.2.2
lz4: 4.4.3
MarkupSafe: 3.0.2
matplotlib: 3.9.2
matplotlib-inline: 0.1.7
msgpack: 1.1.0
ndindex: 1.9.2
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.10.2
numpy: 1.26.4
OpenMM: 8.2.0
openvr: 1.26.701
packaging: 23.2
ParmEd: 4.2.2
parso: 0.8.4
pep517: 0.13.1
pickleshare: 0.7.5
pillow: 10.4.0
pip: 25.0.1
pkginfo: 1.11.1
platformdirs: 4.3.6
prompt_toolkit: 3.0.50
psutil: 6.0.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pycollada: 0.8
pydicom: 2.4.4
pyelftools: 0.32
Pygments: 2.18.0
pynmrstar: 3.3.5
pynrrd: 1.0.0
PyOpenGL: 3.1.9
PyOpenGL-accelerate: 3.1.9
pyopenxr: 1.0.3401
pyparsing: 3.2.1
pyproject_hooks: 1.2.0
PyQt6-commercial: 6.8.1
PyQt6-Qt6: 6.8.2
PyQt6-WebEngine-commercial: 6.8.0
PyQt6-WebEngine-Qt6: 6.8.2
PyQt6_sip: 13.10.0
python-dateutil: 2.9.0.post0
pytz: 2025.1
pywin32: 306
pyzmq: 26.2.1
qtconsole: 5.5.2
QtPy: 2.4.3
qtshim: 1.1
RandomWords: 0.4.0
requests: 2.32.3
scipy: 1.14.0
setuptools: 72.1.0
sfftk-rw: 0.8.1
six: 1.16.0
sniffio: 1.3.1
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.6
Sphinx: 8.1.3
sphinx-autodoc-typehints: 3.0.1
sphinxcontrib-applehelp: 2.0.0
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 2.0.0
sphinxcontrib-htmlhelp: 2.1.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 2.0.0
sphinxcontrib-serializinghtml: 2.0.0
stack-data: 0.6.3
superqt: 0.7.1
tables: 3.10.2
tcia_utils: 1.5.1
tifffile: 2024.7.24
tinyarray: 1.2.4
tornado: 6.4.2
traitlets: 5.14.3
typing_extensions: 4.12.2
tzdata: 2025.1
urllib3: 2.3.0
wcwidth: 0.2.13
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.13
WMI: 1.5.1
Change History (5)
comment:1 by , 9 months ago
| Component: | Unassigned → VR |
|---|---|
| Description: | modified (diff) |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Crash on "xr off" after display sleep with Sony Spatial Reality display |
comment:2 by , 9 months ago
These warning messages
xr.wait_frame() or xr.begin_frame() failed
are sent to the log at maybe 60 or 90 per second and probably our OpenXR code should limit them since updating the log may eventually cause ChimeraX to become unresponsive. But that is unlikely to be related to the crash.
comment:3 by , 9 months ago
Putting in a print statement when OpenXR gives an exiting message does not ever get printed. So it seems OpenXR shuts down without sending an event. Then probably the xr.shutdown(session) call crashes because it is already shutdown. Maybe there is an OpenXR call that can query if the session is still valid.
comment:4 by , 9 months ago
The same crash is produced by showing a model with "xr on" then turning off the Sony display. The Sony OpenXR driver then logs a display disconnected message within about 1 second. Turning the display back on and the ChimeraX graphics is frozen, but menus and the UI works, apparently it just can't begin a frame. At this point using "xr off" crashes ChimeraX in xr.destroy_session().
If I add
xr.request_exit_session(openxr_session)
xr.end_session(openxr_session)
before the call to
xr.destroy_session(openxr_session)
then ChimeraX does not crash, the Sony OpenXR window showing the molecule disappears and a subsequent "xr on" works. Both the request exit and end session calls are needed. Doing only end_session() generates an OpenXR error about not being in the Stopping state. Calling only request exit does then destroy session crashes. Calling just request exit does not remove the molecule from the sony display and a subsequent "xr on" gets errors trying to create a new session apparently because the old session is still present.
comment:5 by , 8 months ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
I added the request_exit_session() and end_session() calls before calling destroy_session() if the system name is "SonySRD System". This seems to be a bug in the Sony OpenXR implementation.
If I don't wait for the display to sleep then "xr off" works correctly and a subsequent "xr on" also works. Apparently the crash happens when OpenXR disconnects and then we try "xr off".