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: | 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 , 8 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 , 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 , 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 , 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 , 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".