Opened 6 years ago
Last modified 6 years ago
#2220 assigned enhancement
Best effort to save session despite circular dependencies
| Reported by: | Owned by: | Greg Couch | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Sessions | Version: | |
| Keywords: | Cc: | Conrad Huang | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Darwin-18.6.0-x86_64-i386-64bit
ChimeraX Version: 0.91 (2019-07-13)
Description
Saving a session with color zone and surface zone commands. I am going to fix the session save to avoid circular dependencies. But the session save code should be improved to issue an error, but still try to save the part of the session that does not have circular dependencies -- ie make best effort to save the session.
Log:
Startup Messages
---
warning | 'clip' is a prefix of an existing command 'clipper'
UCSF ChimeraX version: 0.91 (2019-07-13)
© 2016-2019 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open /Users/goddard/ucsf/chimerax/src/bundles/std_commands/test.cxs format
session
opened ChimeraX session
> surface zone #2 nearAtoms /A,B distance 5
> color zone #2 near /A distance 10
> save test.cxs
Traceback (most recent call last):
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 763, in save
session.save(output, version=version, include_maps=include_maps)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 535, in save
for name, data in mgr.walk():
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 272, in walk
key = next(odg)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 69, in order_dag
yield from _postorder_traversal(path, d, node)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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-
Map', 'VolumeSurface'), 1> from ['models', <'Models', 1>, <('ChimeraX-Map',
'VolumeSurface'), 1>, <('ChimeraX-Surface', 'ZoneColor'), 1>]
chimerax.core.order_dag.OrderDAGError: cycle detected, reached from ['models',
, , ]
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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.
Traceback (most recent call last):
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/cmd_line/tool.py", line 254, in execute
cmd.run(cmd_text)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2646, in run
result = ci.function(session, **kw_args)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/save.py", line 61, in save
fmt.export(session, filename, fmt.nicknames[0], **kw)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/io.py", line 213, in export
result = self.export_func(session, path, **kw)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 763, in save
session.save(output, version=version, include_maps=include_maps)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 535, in save
for name, data in mgr.walk():
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 272, in walk
key = next(odg)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 69, in order_dag
yield from _postorder_traversal(path, d, node)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/order_dag.py", line 82, in _postorder_traversal
yield from _postorder_traversal(path, d, dnode)
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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-
Map', 'VolumeSurface'), 1> from ['models', <'Models', 1>, <('ChimeraX-Map',
'VolumeSurface'), 1>, <('ChimeraX-Surface', 'ZoneColor'), 1>]
chimerax.core.order_dag.OrderDAGError: cycle detected, reached from ['models',
, , ]
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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.
OpenGL version: 4.1 ATI-2.9.26
OpenGL renderer: AMD Radeon Pro 580 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.
Change History (1)
comment:1 by , 6 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Sessions |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Best effort to save session despite circular dependencies |
| Type: | defect → enhancement |
Note:
See TracTickets
for help on using tickets.