#2635 closed defect (not a bug)
self._positions is None
Reported by: | Tristan Croll | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Graphics | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description (last modified by )
The following bug report has been submitted: Platform: Linux-3.10.0-957.12.2.el7.x86_64-x86_64-with-centos-7.6.1810-Core ChimeraX Version: 0.91 (2019-11-28) Description This has to do with my ongoing efforts in making Clipper save/restore capable, and the trigger is certainly my own fault. I'm most of the way, but right now when I save a model with a cryo-EM map controlled by Clipper and then restore, I end up with an unparented Surface instance as model #2. Closing the restored model/map also closes the Surface, but borks the session with the string of "TypeError: object of type 'NoneType' has no len()" messages you see here - looks like ChimeraX is still trying to draw something (the Surface?) after its _delete_geometry() has been called. Will work out what I'm doing wrong - but would it be preferable to catch and gracefully handle this situation? Log: UCSF ChimeraX version: 0.91 (2019-11-28) © 2016-2019 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /run/media/tic20/storage/structure_dump/demo/6eoj/working.pdb Summary of feedback from opening /run/media/tic20/storage/structure_dump/demo/6eoj/working.pdb --- notes | Adding Drawing atoms to working.pdb Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing pbonds to metal coordination bonds Adding Drawing pbonds to missing structure Adding Drawing ribbon to working.pdb Adding models: ['working.pdb'] Parent is None! Parent name: root Adding Drawing working.pdb to root Adding models: ['metal coordination bonds', 'missing structure'] Parent name: working.pdb Chain information for working.pdb #1 --- Chain | Description A | No description available B | No description available D | No description available Adding Drawing working.pdb /A MET 1 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A LYS 193 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A ASN 358 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A PRO 496 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A GLY 610 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A SER 1303 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /A HIS 1334 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /B PRO 1 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /D VAL 27 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing working.pdb /D UNK 466 ribbons to ribbon Adding Drawing working.pdb #1 ribbon_tethers to ribbon Adding Drawing bonds to working.pdb Adding Drawing pbonds to metal coordination bonds Adding Drawing pbonds to missing structure > open 3908 fromDatabase emdb Summary of feedback from opening 3908 fetched from emdb --- notes | Adding Drawing surface to emd_3908.map Adding models: ['3908'] Parent is None! Parent name: root Adding Drawing 3908 to root Adding models: ['surface'] Parent name: 3908 Opened emd_3908.map, grid size 160,160,160, pixel 1.4, shown at level 0.0816, step 1, values float32 > clipper associate #2 toModel #1 Adding Drawing working.pdb to Data manager (working.pdb) Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing Map Manager to Data manager (working.pdb) Adding Drawing Pivot indicator to root Adding Drawing Atomic symmetry to Data manager (working.pdb) Adding Drawing Symmetry atoms to Atomic symmetry Adding Drawing Symmetry bonds to Atomic symmetry Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing Symmetry ribbons to Atomic symmetry Adding Drawing Non-crystallographic maps to Map Manager Adding Drawing 3908 to Non-crystallographic maps Adding Drawing surface to 3908 Adding models: ['Data manager (working.pdb)'] Parent is None! Parent name: root Adding Drawing Data manager (working.pdb) to root Adding models: ['working.pdb', 'Map Manager', 'Atomic symmetry'] Parent name: Data manager (working.pdb) Adding models: ['metal coordination bonds', 'missing structure'] Parent name: working.pdb Adding models: ['Non-crystallographic maps'] Parent name: Map Manager Adding models: ['3908'] Parent name: Non-crystallographic maps Adding models: ['surface'] Parent name: 3908 Adding Drawing Depth Indicator to root Chain information for working.pdb --- Chain | Description 1.1/A | No description available 1.1/B | No description available 1.1/D | No description available Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A MET 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A LYS 193 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A ASN 358 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A PRO 496 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A GLY 610 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A SER 1303 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A HIS 1334 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /B PRO 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D VAL 27 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D UNK 466 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons > close #1 > open test.cxs Summary of feedback from opening test.cxs --- notes | Adding Drawing atoms to structure Adding Drawing ribbon to structure Adding Drawing working.pdb to Data manager (working.pdb) Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing Map Manager to Data manager (working.pdb) Adding Drawing to Map Manager Adding Drawing Non-crystallographic maps to Map Manager Adding Drawing 3908 to Non-crystallographic maps Adding models: ['Data manager (working.pdb)'] Parent is None! Parent name: root Adding Drawing Data manager (working.pdb) to root Adding models: ['working.pdb', 'Map Manager'] Parent name: Data manager (working.pdb) Adding models: ['metal coordination bonds', 'missing structure'] Parent name: working.pdb Adding models: ['Non-crystallographic maps'] Parent name: Map Manager Adding models: ['3908'] Parent name: Non-crystallographic maps Adding Drawing Depth Indicator to root Adding models: ['surface'] Parent is None! Parent name: root Adding Drawing surface to root Adding models: ['Atomic symmetry'] Parent name: Data manager (working.pdb) Adding Drawing Atomic symmetry to Data manager (working.pdb) Adding Drawing Symmetry atoms to Atomic symmetry Adding Drawing Symmetry bonds to Atomic symmetry Adding Drawing Symmetry ribbons to Atomic symmetry opened ChimeraX session Adding Drawing working.pdb /A MET 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A LYS 193 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A ASN 358 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A PRO 496 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A GLY 610 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A SER 1303 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A HIS 1334 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /B PRO 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D VAL 27 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D UNK 466 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing bonds to working.pdb Adding Drawing pbonds to metal coordination bonds Adding Drawing pbonds to missing structure Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons > close #2 > close #1 > open /run/media/tic20/storage/structure_dump/test_session_save/test.cxs Summary of feedback from opening /run/media/tic20/storage/structure_dump/test_session_save/test.cxs --- notes | Adding Drawing atoms to structure Adding Drawing ribbon to structure Adding Drawing working.pdb to Data manager (working.pdb) Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing metal coordination bonds to working.pdb Adding Drawing missing structure to working.pdb Adding Drawing Map Manager to Data manager (working.pdb) Adding Drawing to Map Manager Adding Drawing Non-crystallographic maps to Map Manager Adding Drawing 3908 to Non-crystallographic maps Adding models: ['Data manager (working.pdb)'] Parent is None! Parent name: root Adding Drawing Data manager (working.pdb) to root Adding models: ['working.pdb', 'Map Manager'] Parent name: Data manager (working.pdb) Adding models: ['metal coordination bonds', 'missing structure'] Parent name: working.pdb Adding models: ['Non-crystallographic maps'] Parent name: Map Manager Adding models: ['3908'] Parent name: Non-crystallographic maps Adding Drawing Depth Indicator to root Adding models: ['surface'] Parent is None! Parent name: root Adding Drawing surface to root Adding models: ['Atomic symmetry'] Parent name: Data manager (working.pdb) Adding Drawing Atomic symmetry to Data manager (working.pdb) Adding Drawing Symmetry atoms to Atomic symmetry Adding Drawing Symmetry bonds to Atomic symmetry Adding Drawing Symmetry ribbons to Atomic symmetry opened ChimeraX session Adding Drawing working.pdb /A MET 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A LYS 193 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A ASN 358 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A PRO 496 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A GLY 610 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A SER 1303 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /A HIS 1334 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /B PRO 1 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D VAL 27 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing working.pdb /D UNK 466 ribbons to ribbon Adding Drawing working.pdb #1.1 ribbon_tethers to ribbon Adding Drawing bonds to working.pdb Adding Drawing pbonds to metal coordination bonds Adding Drawing pbonds to missing structure Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A MET 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A LYS 193 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A ASN 358 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A PRO 496 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A GLY 610 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A SER 1303 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /A HIS 1334 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /B PRO 1 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D VAL 27 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons Adding Drawing working.pdb /D UNK 466 ribbons to Symmetry ribbons Adding Drawing working.pdb #1.1 ribbon_tethers to Symmetry ribbons > close #1 Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. [_many_ of these deleted] Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. Traceback (most recent call last): File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/updateloop.py", line 134, in _redraw_timer_callback self.session.ui.mouse_modes.mouse_pause_tracking() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 356, in mouse_pause_tracking self._mouse_pause() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 454, in _mouse_pause m.pause(self._mouse_pause_position) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/std_modes.py", line 490, in pause p = picked_object(x, y, self.view) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/mouse_modes/mousemodes.py", line 596, in picked_object xyz1, xyz2 = view.clip_plane_points(window_x, window_y) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 880, in clip_plane_points near, far = self.near_far_distances(c, view_num, include_clipping = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 841, in near_far_distances near, far = self._near_far_bounds(cp, vd) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 854, in _near_far_bounds b = self.drawing_bounds(allow_drawing_changes = False) File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/view.py", line 592, in drawing_bounds dm.cached_drawing_bounds = b = self.drawing.bounds() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 908, in bounds dbounds = [d.bounds() for d in self.child_drawings() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 909, in <listcomp> if d.display and not getattr(d, 'skip_bounds', False)] File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 TypeError: object of type 'NoneType' has no len() TypeError: object of type 'NoneType' has no len() File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site- packages/chimerax/core/graphics/drawing.py", line 335, in get_display return self._any_displayed_positions and len(self._positions) > 0 See log for complete Python traceback. OpenGL version: 3.3.0 NVIDIA 418.87.01 OpenGL renderer: TITAN Xp/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation
Change History (6)
comment:1 by , 6 years ago
Component: | Unassigned → Graphics |
---|---|
Description: | modified (diff) |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → self._positions is None |
comment:2 by , 6 years ago
comment:3 by , 6 years ago
I guess what happened here is you created a model in a session restore and due to fault session restore model.parent was not set, and yet the parent did point to the child (which session restore did). So then if you close the model, it can't find its parent since the parent is None, so it doesn't remove it as a child from the parent. Then when the parent draws it tries to draw a closed model giving the observed traceback.
I'm not sure how to better handle this error condition -- a Model was half setup by faulty session restore code. I guess safety code could be put into the Model code that draws its children to first test each child to see if it has been deleted, and if it has to remove it and issue a warning. But this is should be a very rare condition, requires just the right buggy code, where a child got deleted and the parent was never told.
comment:4 by , 6 years ago
Resolution: | → not a bug |
---|---|
Status: | assigned → closed |
I don't see anything to do here.
follow-up: 5 comment:5 by , 6 years ago
All fair points. What I was thinking was to place a `try:/except:` where the `except:` would forcibly remove the offending model with a warning to the log, so the session is still recoverable. But you're right - it's a pretty rare case. On 2019-12-03 19:38, ChimeraX wrote:
follow-up: 6 comment:6 by , 6 years ago
There are a lot of ways session restore can put things in an inconsistent state, and just protecting against one rare case isn't likely to help. If the same session restore failure is seen in different code though it could be worth putting in some recovery code. For instance, I think if a tool throws an exception restoring a session we would ideally restore everything except that tool to make session restore more robust. Likewise if a tool tries to save some unsavable state in a session it would be good to just warn and save all the other tools and models (I just made a ticket for that #2638). But your case is session restore made inconsistent state that only produced an error later when you tried to close a model. That is what I'm saying will be hard to protect against -- errors that were made by session restore but don't appear until later.
From Tristan (couldn't originally comment on ticket due to long description): "found my problem - I'd just forgotten to
call
Model.set_state_from_snapshot()
on theSurface
instance"