Opened 2 years ago
Closed 2 years ago
#9594 closed defect (fixed)
VR transmitting session: cycle detected
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | VR | Version: | |
Keywords: | Cc: | Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.22621 ChimeraX Version: 1.7.dev202308090023 (2023-08-09 00:23:26 UTC) Description (Describe the actions that caused this problem to occur here) Log: UCSF ChimeraX version: 1.7.dev202308090023 (2023-08-09) © 2016-2023 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open C:/Users/NIH/Desktop/AFRRI/minipig.cxc > open DICOM format dicom Summary of feedback from opening DICOM --- notes | Pydicom could not read invalid or non-DICOM file ._IM00010.dcm; skipping. Pydicom could not read invalid or non-DICOM file ._IM00020.dcm; skipping. Pydicom could not read invalid or non-DICOM file ._IM00030.dcm; skipping. Pydicom could not read invalid or non-DICOM file ._IM00040.dcm; skipping. Pydicom could not read invalid or non-DICOM file ._IM00050.dcm; skipping. 173 messages similar to the above omitted Opened 4 CT () as #1.1.1, grid size 512,512,178, pixel 0.545,0.545,2.98, shown at step 1, values float32 > volume all appearance chest > volume all style image > open D006.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D008.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D013.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D016.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D023.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D027.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D030.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D034.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D037.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D041.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D044.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D048.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D051.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D058.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D062.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D065.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D069.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D072.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D076.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D079.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D083.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D086.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D090.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D100.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D104.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > open D111.glb Opened glTF file containing 1 scenes, 2 nodes, 1 meshes > hide #* > show #1,2 > open my_next.py executed my_next.py > vr button grip hand left command next > vr button grip "tape measure" hand right executed minipig.cxc > ui tool show Meeting > meeting start bioviz1admin server chimeraxmeeting.net Meeting "bioviz1admin" started at chimeraxmeeting.net port 52200 Participants can join with command "meeting bioviz1admin" Connection from ::1 port 53762 established, waiting for join message Connection accepted from ::1 port 53762 Traceback (most recent call last): File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1315, in _data_available self._message_received_cb(msg, self) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1205, in _message_received if self._handle_join_message(msg, msg_stream): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1154, in _handle_join_message self._add_connection(msg_stream) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1183, in _add_connection self._copy_scene_to_participant(msg_stream) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1191, in _copy_scene_to_participant session_bytes = self._host._encode_session() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 869, in _encode_session self._session.save(stream, version=3, include_maps=True) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\session.py", line 628, in save for name, data in mgr.walk(): File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\session.py", line 307, in walk key = next(odg) ^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 69, in order_dag yield from _postorder_traversal(path, d, node) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 80, in _postorder_traversal raise OrderDAGError("cycle detected, reached %s from %s" % (repr(dnode), repr(path)), path) chimerax.core.order_dag.OrderDAGError: cycle detected, reached <('ChimeraX- gltf', 'gltfModel'), 1> from ['models', <'Models', 1>, <('ChimeraX-gltf', 'gltfModel'), 1>, <('ChimeraX-gltf', 'gltfModel'), 2>] chimerax.core.order_dag.OrderDAGError: cycle detected, reached from ['models', , , ] File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 80, in _postorder_traversal raise OrderDAGError("cycle detected, reached %s from %s" % (repr(dnode), repr(path)), path) See log for complete Python traceback. Connection from ::1 port 53766 established, waiting for join message Connection accepted from ::1 port 53766 Traceback (most recent call last): File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1315, in _data_available self._message_received_cb(msg, self) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1205, in _message_received if self._handle_join_message(msg, msg_stream): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1154, in _handle_join_message self._add_connection(msg_stream) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1183, in _add_connection self._copy_scene_to_participant(msg_stream) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 1191, in _copy_scene_to_participant session_bytes = self._host._encode_session() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\meeting\meeting.py", line 869, in _encode_session self._session.save(stream, version=3, include_maps=True) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\session.py", line 628, in save for name, data in mgr.walk(): File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\session.py", line 307, in walk key = next(odg) ^^^^^^^^^ File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 69, in order_dag yield from _postorder_traversal(path, d, node) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 82, in _postorder_traversal yield from _postorder_traversal(path, d, dnode) File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 80, in _postorder_traversal raise OrderDAGError("cycle detected, reached %s from %s" % (repr(dnode), repr(path)), path) chimerax.core.order_dag.OrderDAGError: cycle detected, reached <('ChimeraX- gltf', 'gltfModel'), 1> from ['models', <'Models', 1>, <('ChimeraX-gltf', 'gltfModel'), 1>, <('ChimeraX-gltf', 'gltfModel'), 2>] chimerax.core.order_dag.OrderDAGError: cycle detected, reached from ['models', , , ] File "C:\Program Files\ChimeraX_daily_8_9\bin\Lib\site- packages\chimerax\core\order_dag.py", line 80, in _postorder_traversal raise OrderDAGError("cycle detected, reached %s from %s" % (repr(dnode), repr(path)), path) See log for complete Python traceback. Disconnected from ::1 port 53762 OpenGL version: 3.3.0 NVIDIA 535.98 OpenGL renderer: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Python: 3.11.2 Locale: en_US.cp1252 Qt version: PyQt6 6.3.1, Qt 6.3.1 Qt runtime version: 6.3.2 Qt platform: windows Manufacturer: Micro-Star International Co., Ltd. Model: MS-7D30 OS: Microsoft Windows 11 Pro (Build 22621) Memory: 68,497,039,360 MaxProcessMemory: 137,438,953,344 CPU: 20 12th Gen Intel(R) Core(TM) i7-12700K OSLanguage: en-US Installed Packages: alabaster: 0.7.13 appdirs: 1.4.4 asttokens: 2.2.1 Babel: 2.12.1 backcall: 0.2.0 beautifulsoup4: 4.11.2 blockdiag: 3.0.0 blosc2: 2.0.0 build: 0.10.0 certifi: 2023.7.22 cftime: 1.6.2 charset-normalizer: 3.2.0 ChimeraX-AddCharge: 1.5.11 ChimeraX-AddH: 2.2.5 ChimeraX-AlignmentAlgorithms: 2.0.1 ChimeraX-AlignmentHdrs: 3.4 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.9.3 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.1.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.46.1 ChimeraX-AtomicLibrary: 10.0.8 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.3.2 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.1.2 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.10.4 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.2.2 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.3.2 ChimeraX-ChangeChains: 1.0.2 ChimeraX-CheckWaters: 1.3.1 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.2.4 ChimeraX-ColorActions: 1.0.3 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.3 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.7.dev202308090023 ChimeraX-CoreFormats: 1.1 ChimeraX-coulombic: 1.4.2 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-Dicom: 1.2 ChimeraX-DistMonitor: 1.4 ChimeraX-DockPrep: 1.1.2 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.1.1 ChimeraX-Hbonds: 2.4 ChimeraX-Help: 1.2.1 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.1 ChimeraX-IUPAC: 1.0 ChimeraX-Label: 1.1.8 ChimeraX-ListInfo: 1.2 ChimeraX-Log: 1.1.5 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.2 ChimeraX-Map: 1.1.4 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.1 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.2 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.12 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.10 ChimeraX-ModelPanel: 1.4 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.1 ChimeraX-NRRD: 1.1 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.10.2 ChimeraX-PDB: 2.7.2 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.1 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.2 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 3.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.1 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.9 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.1.1 ChimeraX-ShowSequences: 1.0.1 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.12.1 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.1.2 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.2.2 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.1.2 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.31.2 ChimeraX-uniprot: 2.3 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.2.2 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.1 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.1.4 comtypes: 1.1.14 contourpy: 1.1.0 cxservices: 1.2.2 cycler: 0.11.0 Cython: 0.29.33 debugpy: 1.6.7.post1 decorator: 5.1.1 docutils: 0.19 executing: 1.2.0 filelock: 3.9.0 fonttools: 4.42.0 funcparserlib: 1.0.1 grako: 3.16.5 h5py: 3.9.0 html2text: 2020.1.16 idna: 3.4 ihm: 0.38 imagecodecs: 2023.7.10 imagesize: 1.4.1 ipykernel: 6.23.2 ipython: 8.14.0 ipython-genutils: 0.2.0 ipywidgets: 8.1.0 jedi: 0.18.2 Jinja2: 3.1.2 jupyter-client: 8.2.0 jupyter-core: 5.3.1 jupyterlab-widgets: 3.0.8 kiwisolver: 1.4.4 line-profiler: 4.0.2 lxml: 4.9.2 lz4: 4.3.2 MarkupSafe: 2.1.3 matplotlib: 3.7.2 matplotlib-inline: 0.1.6 msgpack: 1.0.4 nest-asyncio: 1.5.7 netCDF4: 1.6.2 networkx: 3.1 nibabel: 5.0.1 nptyping: 2.5.0 numexpr: 2.8.5 numpy: 1.25.1 openvr: 1.23.701 packaging: 23.1 ParmEd: 3.4.3 parso: 0.8.3 pep517: 0.13.0 pickleshare: 0.7.5 Pillow: 10.0.0 pip: 23.0 pkginfo: 1.9.6 platformdirs: 3.10.0 prompt-toolkit: 3.0.39 psutil: 5.9.5 pure-eval: 0.2.2 py-cpuinfo: 9.0.0 pycollada: 0.7.2 pydicom: 2.3.0 Pygments: 2.14.0 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyparsing: 3.0.9 pyproject-hooks: 1.0.0 PyQt6-commercial: 6.3.1 PyQt6-Qt6: 6.3.2 PyQt6-sip: 13.4.0 PyQt6-WebEngine-commercial: 6.3.1 PyQt6-WebEngine-Qt6: 6.3.2 python-dateutil: 2.8.2 pytz: 2023.3 pywin32: 305 pyzmq: 25.1.0 qtconsole: 5.4.3 QtPy: 2.3.1 RandomWords: 0.4.0 requests: 2.31.0 scipy: 1.11.1 setuptools: 67.4.0 sfftk-rw: 0.7.3 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.4.1 sphinx: 6.1.3 sphinx-autodoc-typehints: 1.22 sphinxcontrib-applehelp: 1.0.5 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.3 sphinxcontrib-htmlhelp: 2.0.2 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.4 sphinxcontrib-serializinghtml: 1.1.6 stack-data: 0.6.2 tables: 3.8.0 tcia-utils: 1.5.1 tifffile: 2023.7.18 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.3.2 traitlets: 5.9.0 typing-extensions: 4.7.1 tzdata: 2023.3 urllib3: 2.0.4 wcwidth: 0.2.6 webcolors: 1.12 wheel: 0.38.4 wheel-filename: 1.4.1 widgetsnbextension: 4.0.8 WMI: 1.5.1
Change History (4)
comment:1 by , 2 years ago
Cc: | added |
---|---|
Component: | Unassigned → VR |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → VR transmitting session: cycle detected |
comment:2 by , 2 years ago
comment:4 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed.
Session saving with a GLTF model open always failed with this error. It surprises me that this was never reported before. This was a bug in the session saving code for Generic3DModel which was a base class for the GLTF model. I changed it so the GLTF model uses Surface as a base class instead. I also changed OBJ models to use Surface as a base class all though OBJ saved in sessions even with the old code because OBJ does not support model hierarchy which was needed to see this bug.
Note:
See TracTickets
for help on using tickets.
This is a strange error. It was trying to save a session with a dicom and lots of gltf models open and it says that a gltfmodel subnode pointed back to its parent gltf model creating a cycle that is not allowed in sessions. Saving gltf in sessions used to work so I suspect there is something special about your gltf. You could try just loading the gltf models and saving a session (.cxs) file, no vr. If that fails then try cloaing half the models and see if that will save. It could be just one model causes the issue.