Opened 6 years ago

Closed 5 years ago

#2110 closed defect (fixed)

ToolInstance id problem restoring session

Reported by: goddard@… Owned by: Conrad Huang
Priority: major Milestone: RC 1
Component: Sessions Version:
Keywords: Cc: chimera-programmers
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-06-24)
Description
Tools.restore_snapshot()  updates Tools._tool_instances[id] = tool using the id values from when the session was saved.  But the ToolInstance.__init__() has already added the ToolInstance by calling Tools.add([self]) assigning it a new id.  This can result in a tool getting two entries in the Tools._tool_instances dictionary or an existing (session enduring) tool in _tool_instances being replaced by the restore_snapshot() code.

The duplicate tool case happened in my port of Segger restoring a session with the Segment Map tool.

A solution might be that the Tools.restore_snapshot() simply does not need to restore the id since restoring each ToolInstance assigns a new id.  But I don't know if there are other things in the session that reference the old tool id.


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




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

Change History (7)

comment:1 by Tom Goddard, 6 years ago

Component: UnassignedSessions
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionToolInstance id problem restoring session

comment:2 by Tom Goddard, 6 years ago

Cc: Conrad Huang added
Priority: normalmajor

This needs a fix soon since Segger session restore fails because of this bug and I will be showing that a the Stanford cryoEM workshop. I have to create the tutorial for that workshop this week.

comment:3 by Greg Couch, 6 years ago

Cc: chimera-programmers added; Conrad Huang removed

The only code that uses the integer id is blastprotein so users can refer to specific instances. And the unused active tools tool. Eric has a different way of referring to sequence tools that is more descriptive. Perhaps these can be techniques can be merged.

comment:4 by Tom Goddard, 6 years ago

I made Tools not attempt to restore tool id numbers -- instead new tool id numbers are assigned.

comment:5 by Greg Couch, 6 years ago

Owner: changed from Greg Couch to Conrad Huang

blastprotein should use its own id space like alignments do instead of the tool id.

comment:6 by Greg Couch, 6 years ago

Milestone: RC 1

comment:7 by Greg Couch, 5 years ago

Resolution: fixed
Status: assignedclosed

Removed ToolInstance.id since it no longer needed.

Note: See TracTickets for help on using tickets.