Opened 4 years ago
Closed 4 years ago
#4681 closed defect (can't reproduce)
Crash in Collection.__iter__
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Core | Version: | |
| Keywords: | Cc: | chimera-programmers | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-5.8.0-53-generic-x86_64-with-glibc2.14
ChimeraX Version: 1.2.4 (2021-05-14 07:23:00 UTC)
Description
Last time you used ChimeraX it crashed.
Please describe steps that led to the crash here.
Fatal Python error: Segmentation fault
Current thread 0x00007f4f9eef3740 (most recent call first):
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/molarray.py", line 150 in
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/molarray.py", line 150 in __iter__
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/selectors.py", line 113 in _get_missing_structure
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/selectors.py", line 86 in _polymer_selector
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/selectors.py", line 29 in
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/toolshed/info.py", line 339 in selector_cb
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/atomspec.py", line 904 in find_matches
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/atomspec.py", line 967 in find_matches
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/atomspec.py", line 964 in evaluate
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/atomspec.py", line 1042 in evaluate
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/atomspec.py", line 1055 in evaluate
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/atomic/args.py", line 25 in parse
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/cli.py", line 2447 in _parse_arg
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/cli.py", line 2588 in _process_positional_arguments
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/core/commands/cli.py", line 2812 in run
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/cmd_line/tool.py", line 280 in execute
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/cmd_line/tool.py", line 117 in keyPressEvent
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/chimerax/ui/gui.py", line 293 in event_loop
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/ChimeraX_main.py", line 866 in init
File "/usr/lib/ucsf-chimerax/lib/python3.8/site-packages/ChimeraX_main.py", line 1015 in
File "/usr/lib/ucsf-chimerax/lib/python3.8/runpy.py", line 87 in _run_code
File "/usr/lib/ucsf-chimerax/lib/python3.8/runpy.py", line 194 in _run_module_as_main
Log:
UCSF ChimeraX version: 1.2.4 (2021-05-14)
© 2016-2021 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
OpenGL version: 4.6 (Core Profile) Mesa 20.2.6
OpenGL renderer: AMD RAVEN (DRM 3.38.0, 5.8.0-53-generic, LLVM 11.0.0)
OpenGL vendor: X.Org
Manufacturer: HP
Model: HP Pavilion Laptop 15-cw0xxx
OS: Ubuntu 20.04 focal
Architecture: 64bit ELF
Virutal Machine: none
CPU: 4 AMD Ryzen 3 2300U with Radeon Vega Mobile Gfx
Cache Size: 512 KB
Memory:
total used free shared buff/cache available
Mem: 10Gi 5.8Gi 705Mi 347Mi 4.2Gi 4.3Gi
Swap: 2.0Gi 31Mi 2.0Gi
Graphics:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] [1002:15dd] (rev cc)
DeviceName: Onboard IGD
Subsystem: Hewlett-Packard Company Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] [103c:84e7]
Locale: ('en_US', 'UTF-8')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.9.1
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.12.5
cftime: 1.4.1
chardet: 3.0.4
ChimeraX-AddCharge: 1.0
ChimeraX-AddH: 2.1.6
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.13.3
ChimeraX-AtomicLibrary: 3.1.3
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.5.2
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.1
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.2.1
ChimeraX-CommandLine: 1.1.4
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.2.4
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.1.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.1
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1.3
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.0
ChimeraX-Hbonds: 2.1
ChimeraX-Help: 1.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.1
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-Label: 1.0
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.0.2
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.2.1
ChimeraX-MDcrds: 2.2
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.3
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.0.1
ChimeraX-ModelPanel: 1.0.1
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.1
ChimeraX-OpenCommand: 1.5
ChimeraX-PDB: 2.4.1
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.1
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0.1
ChimeraX-PubChem: 2.0.1
ChimeraX-ReadPbonds: 1.0
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.4
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.3
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.3.1
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.0.1
ChimeraX-ToolshedUtils: 1.2
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.7.4
ChimeraX-uniprot: 2.1
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.21
decorator: 5.0.7
distlib: 0.3.1
distro: 1.5.0
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.17
imagecodecs: 2020.5.30
imagesize: 1.2.0
ipykernel: 5.3.4
ipython: 7.18.1
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.7
jupyter-core: 4.7.1
kiwisolver: 1.3.1
line-profiler: 2.1.2
lxml: 4.6.2
lz4: 3.1.0
MarkupSafe: 2.0.0
matplotlib: 3.3.2
msgpack: 1.0.0
netCDF4: 1.5.4
networkx: 2.5
numexpr: 2.7.3
numpy: 1.19.2
numpydoc: 1.1.0
openvr: 1.14.1501
packaging: 20.9
ParmEd: 3.2.0
parso: 0.7.1
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 7.2.0
pip: 21.0.1
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.18
psutil: 5.7.2
ptyprocess: 0.7.0
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.7.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.2
python-dateutil: 2.8.1
pytz: 2021.1
pyzmq: 22.0.3
qtconsole: 4.7.7
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.5.2
setuptools: 50.3.2
sfftk-rw: 0.6.7.dev1
six: 1.15.0
snowballstemmer: 2.1.0
sortedcontainers: 2.2.2
Sphinx: 3.2.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.9.3
tinyarray: 1.2.3
tornado: 6.1
traitlets: 5.0.5
urllib3: 1.25.11
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.36.0
wheel-filename: 1.2.0
Change History (5)
comment:1 by , 4 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Core |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Crash in Collection.__iter__ |
comment:2 by , 4 years ago
Yep crashed in same line of code. This has me a bit worried about our c_ptr_to_py_inst(p) code. This is on Linux so we don't get the C/C++ stack which on Mac shows the crash in garbage collection. Not sure how often garbage collection happens -- pretty often I think (every second when user is doing stuff?). Worth taking a close look at what c_ptr_to_py_inst() is doing besides causing garbage collection as a side-effect. Maybe this is just the most common code path where garbage collection happens.
comment:3 by , 4 years ago
If garbage collection happens frequently, that would suggest that the crash should happen close in time to when the memory corruption happened, according to my theory when the incorrectly reference counted object was deleted. But maybe that is not true, because the deleted object may not cause an error until its memory is overwritten by some other allocation.
comment:4 by , 4 years ago
With default settings, garbage collection happens when allocations exceed deallocations by 700. Therefore, obviously calling all these constructors during iter will frequently kick off garbage collection.
comment:5 by , 4 years ago
| Resolution: | → can't reproduce |
|---|---|
| Status: | assigned → closed |
It makes sense that garbage collection will often be triggered by iteration over collections of atoms, residues or bonds that will usually create more than 700 if the python objects are not already created. So I think this may give no clue at all as to what deleted Python object might be causing this crash.
Suspiciously similar to the garbage-collection crash of a few days ago.