Opened 6 years ago

Last modified 6 years ago

#2638 assigned enhancement

Make session save prune unsavable objects

Reported by: goddard@… Owned by: Greg Couch
Priority: normal Milestone:
Component: Sessions Version:
Keywords: Cc: Conrad Huang, Eric Pettersen
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-19.0.0-x86_64-i386-64bit
ChimeraX Version: 0.91 (2019-12-02)
Description
Make session save prune unsavable objects.

To make session save robust it would be good if the saved tree can be pruned to eliminate Model and ToolInstance objects that cannot be saved possibly because they reference some other unsavable object.

One scenario where this problem arises is if a Model subclass sets m.SESSION_SAVE = False and some tool that does save in sessions tries to save a reference to that Model.  Examples of models that don't save in session are VR hand controllers and VR user interface panels.  But many tools might not offer session save support for their models.  If some unrelated tool tries to save a reference to such a model I think the session save fails which is a very bad result.

One possible solution is to prune the session save graph.  If some object cannot be saved, then traverse up the directed graph until some object is reached that has declared it can handle unsavable children, such as the Models manager, or ToolInstance manager.


Log:
UCSF ChimeraX version: 0.91 (2019-12-02)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  




OpenGL version: 4.1 ATI-3.2.24
OpenGL renderer: AMD Radeon Pro 580 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.

Change History (2)

comment:1 by Tom Goddard, 6 years ago

Cc: Conrad Huang Eric Pettersen added
Component: UnassignedSessions
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionMake session save prune unsavable objects
Type: defectenhancement

comment:2 by Tom Goddard, 6 years ago

Some more discussion of this including comparison of how Chimera 1 handles the problem is in LabelModel ticket #2676

Note: See TracTickets for help on using tickets.