Opened 4 years ago

Closed 4 years ago

#4681 closed defect (can't reproduce)

Crash in Collection.__iter__

Reported by: chimerax-bug-report@… 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 Eric Pettersen, 4 years ago

Cc: chimera-programmers added
Component: UnassignedCore
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCrash in Collection.__iter__

Suspiciously similar to the garbage-collection crash of a few days ago.

comment:2 by Tom Goddard, 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 Tom Goddard, 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 Eric Pettersen, 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 Tom Goddard, 4 years ago

Resolution: can't reproduce
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.