Opened 6 years ago

Closed 6 years ago

#2802 closed defect (fixed)

saving session w/ 2D arrows gives RuntimeError: Unable to restore objects of Arrows class

Reported by: Elaine Meng Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Sessions Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-18.7.0-x86_64-i386-64bit
ChimeraX Version: 0.92 (2020-02-04)
Description
Restored old session prc.cxs from this page http://www.rbvi.ucsf.edu/chimerax/gallery.html because it had pre-existing 2d labels, closed structure, added 2d arrows, tried to save session.  Obscure situation just to save me time in making 2d labels.  I guess it's not important if saving a new session with labels + arrows would work.

Log:
> open /Users/meng/Desktop/startup.cxc

> alias reset view orient; view initial

> alias start tool show $*

executed startup.cxc  
UCSF ChimeraX version: 0.92 (2020-02-04)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /Users/meng/Desktop/prc.cxs

Summary of feedback from opening /Users/meng/Desktop/prc.cxs  
---  
warning | restore_snapshot for "Labels" returned None  
  
opened ChimeraX session  

> 2dlabels arrow #2.1 start .5,.5 color hot pink

No 2D arrows in session  

> 2dlabels arrow end .8,.8 start .5,.5 color hot pink

> 2dlabels arrow all color orchid

> 2dlabels arrow color blue

> 2dlabels delete all

> 2dlabels delete #3

> undo

No undo action is available  

> close

> open /Users/meng/Desktop/prc.cxs

Summary of feedback from opening /Users/meng/Desktop/prc.cxs  
---  
warning | restore_snapshot for "Labels" returned None  
  
opened ChimeraX session  

> close #1

> 2dlabels arrow start .2,.2 end .2,.7 weight .4 color magenta

> 2dlabels arrow start .3,.3 end .8,.3 color yellow

> save 2dstuff.cxs

Traceback (most recent call last):  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 796, in save  
session.save(output, version=version, include_maps=include_maps)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 556, in save  
mgr.discovery(self._state_containers)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 255, in discovery  
self.processed[key] = self.process(obj, parents)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 288, in process  
return copy_state(data, convert=convert)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 210, in copy_state  
return _copy(data)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 208, in _copy  
return convert(data)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 287, in convert  
return add_obj(obj, parents)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 261, in _add_obj  
uid = _UniqueName.from_obj(self.session, obj)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 142, in from_obj  
(obj_cls.__name__, bundle_info.name))  
RuntimeError: Unable to restore objects of Arrows class in ChimeraX-Label
bundle because the class name is not listed in the name to class table for
session restore  
  
RuntimeError: Unable to restore objects of Arrows class in ChimeraX-Label
bundle because the class name is not listed in the name to class table for
session restore  
  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 142, in from_obj  
(obj_cls.__name__, bundle_info.name))  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/cmd_line/tool.py", line 258, in execute  
cmd.run(cmd_text)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2837, in run  
result = ci.function(session, **kw_args)  
File
"/Users/meng/Desktop/ChimeraX_Daily.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/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/io.py", line 229, in export  
result = self.export_func(session, path, **kw)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 796, in save  
session.save(output, version=version, include_maps=include_maps)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 556, in save  
mgr.discovery(self._state_containers)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 255, in discovery  
self.processed[key] = self.process(obj, parents)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 288, in process  
return copy_state(data, convert=convert)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 210, in copy_state  
return _copy(data)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 195, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/state.py", line 208, in _copy  
return convert(data)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 287, in convert  
return add_obj(obj, parents)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 261, in _add_obj  
uid = _UniqueName.from_obj(self.session, obj)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 142, in from_obj  
(obj_cls.__name__, bundle_info.name))  
RuntimeError: Unable to restore objects of Arrows class in ChimeraX-Label
bundle because the class name is not listed in the name to class table for
session restore  
  
RuntimeError: Unable to restore objects of Arrows class in ChimeraX-Label
bundle because the class name is not listed in the name to class table for
session restore  
  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/session.py", line 142, in from_obj  
(obj_cls.__name__, bundle_info.name))  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 INTEL-12.10.14
OpenGL renderer: Intel Iris Pro OpenGL Engine
OpenGL vendor: Intel Inc.

Change History (3)

comment:1 by Elaine Meng, 6 years ago

Component: UnassignedSessions
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newassigned

Nope, even when I started "fresh" (not from an existing session) and made some 2d labels and arrows and tried to save session, I got the same error.

comment:2 by Elaine Meng, 6 years ago

Summary: ChimeraX bug report submissionsaving session w/ 2D arrows gives RuntimeError: Unable to restore objects of Arrows class

comment:3 by Eric Pettersen, 6 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.