Opened 6 years ago
Closed 6 years ago
#2688 closed defect (fixed)
Infinite recursion of map.session.existing_directory
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| 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: Windows-7-6.1.7601-SP1 ChimeraX Version: 0.91 (2019-12-16) Description Opening of a session file (cxs). Log: Startup Messages --- warning | 'clip' is a prefix of an existing command 'clipper' UCSF ChimeraX version: 0.91 (2019-12-16) © 2016-2019 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open "C:\Users\jva020\OneDrive - University of Bergen\MyoA- > Act1_paper\Figures\figs2_tail_model\working_files\model_for_powerstroke.cxs" Unable to restore session, resetting. Traceback (most recent call last): File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\core\session.py", line 653, in restore obj = sm.restore_snapshot(self, data) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 219, in restore_snapshot grids = grid_data_from_state(data, gdcache, session, rfp) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 362, in grid_data_from_state base_path = session.session_file_path) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 136, in absolute_path apath = file_paths.find(fpath,ask) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 251, in find starting_directory = existing_directory(path)) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) [Previous line repeated 969 more times] File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 285, in existing_directory d = dirname(path) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 221, in dirname return split(p)[0] File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 184, in split seps = _get_bothseps(p) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 35, in _get_bothseps if isinstance(path, bytes): RecursionError: maximum recursion depth exceeded while calling a Python object opened ChimeraX session > open "C:/Users/jva020/OneDrive - University of Bergen/MyoA- > Act1_paper/Figures/figs2_tail_model/working_files/model_for_powerstroke2.cxs" Unable to restore session, resetting. Traceback (most recent call last): File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\core\session.py", line 653, in restore obj = sm.restore_snapshot(self, data) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 219, in restore_snapshot grids = grid_data_from_state(data, gdcache, session, rfp) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 362, in grid_data_from_state base_path = session.session_file_path) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 136, in absolute_path apath = file_paths.find(fpath,ask) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 251, in find starting_directory = existing_directory(path)) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) [Previous line repeated 972 more times] File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 285, in existing_directory d = dirname(path) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 221, in dirname return split(p)[0] File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 184, in split seps = _get_bothseps(p) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 35, in _get_bothseps if isinstance(path, bytes): RecursionError: maximum recursion depth exceeded while calling a Python object opened ChimeraX session > open "C:/Users/jva020/OneDrive - University of Bergen/MyoA- > Act1_paper/Figures/figs2_tail_model/model_for_powerstroke.cxs" Unable to restore session, resetting. Traceback (most recent call last): File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\core\session.py", line 653, in restore obj = sm.restore_snapshot(self, data) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 219, in restore_snapshot grids = grid_data_from_state(data, gdcache, session, rfp) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 362, in grid_data_from_state base_path = session.session_file_path) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 136, in absolute_path apath = file_paths.find(fpath,ask) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 251, in find starting_directory = existing_directory(path)) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) [Previous line repeated 972 more times] File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 285, in existing_directory d = dirname(path) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 221, in dirname return split(p)[0] File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 184, in split seps = _get_bothseps(p) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 35, in _get_bothseps if isinstance(path, bytes): RecursionError: maximum recursion depth exceeded while calling a Python object opened ChimeraX session > open D:/model_for_powerstroke.cxs Unable to restore session, resetting. Traceback (most recent call last): File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\core\session.py", line 653, in restore obj = sm.restore_snapshot(self, data) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 219, in restore_snapshot grids = grid_data_from_state(data, gdcache, session, rfp) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 362, in grid_data_from_state base_path = session.session_file_path) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 136, in absolute_path apath = file_paths.find(fpath,ask) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 251, in find starting_directory = existing_directory(path)) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 288, in existing_directory return existing_directory(d) [Previous line repeated 972 more times] File "D:\Program Files\ChimeraX-daily\bin\lib\site- packages\chimerax\map\session.py", line 285, in existing_directory d = dirname(path) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 221, in dirname return split(p)[0] File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 184, in split seps = _get_bothseps(p) File "D:\Program Files\ChimeraX-daily\bin\lib\ntpath.py", line 35, in _get_bothseps if isinstance(path, bytes): RecursionError: maximum recursion depth exceeded while calling a Python object opened ChimeraX session OpenGL version: 3.3.0 NVIDIA 376.51 OpenGL renderer: Quadro K1200/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation File attachment: model_for_powerstroke.cxs
Attachments (1)
Change History (3)
by , 6 years ago
| Attachment: | model_for_powerstroke.cxs added |
|---|
comment:1 by , 6 years ago
| Component: | Unassigned → Sessions |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Infinite recursion of map.session.existing_directory |
comment:2 by , 6 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
Opening a session that contains a path to a map in a subdirectory when the map is no longer there caused this infinite recursion problem when it tried to find a parent directory of the original map that still exists and show a replace file dialog starting at that directory. But in this case the path was relative and the parent directory became and empty string and the code did not handle that properly.
Note:
See TracTickets
for help on using tickets.
Added by email2trac