Opened 8 months ago

Closed 8 months ago

#16962 closed defect (fixed)

Crash on "xr off" after display sleep with Sony Spatial Reality display

Reported by: goddard@… 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 Tom Goddard)

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 Tom Goddard, 8 months ago

Component: UnassignedVR
Description: modified (diff)
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCrash on "xr off" after display sleep with Sony Spatial Reality display

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".

comment:2 by Tom Goddard, 8 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 Tom Goddard, 8 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 Tom Goddard, 8 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 Tom Goddard, 8 months ago

Resolution: fixed
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.