Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#7160 closed defect (can't reproduce)

QObject::~QObject: Timers cannot be stopped from another thread

Reported by: chimerax-bug-report@… Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Window Toolkit Version:
Keywords: Cc: Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.22000
ChimeraX Version: 1.3 (2021-12-08 23:08:33 UTC)
Description
Last time you used ChimeraX it crashed.
Please describe steps that led to the crash here.
Fatal Python error: Aborted

Thread 0x0000334c (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 316 in wait
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 574 in wait
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 1284 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x000039f0 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 576 in _handle_results
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00006994 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 528 in _handle_tasks
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x000059b8 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\connection.py", line 816 in _exhaustive_wait
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\connection.py", line 884 in wait
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 499 in _wait_for_updates
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 519 in _handle_workers
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x0000083c (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00002534 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x0000213c (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00003a7c (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x000002ec (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00006cb8 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00006b44 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x00006df4 (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\multiprocessing\pool.py", line 114 in worker
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 910 in run
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 973 in _bootstrap_inner
  File "C:\Program Files\ChimeraX 1.3\bin\lib\threading.py", line 930 in _bootstrap

Thread 0x000068bc (most recent call first):
  File "C:\Program Files\ChimeraX 1.3\bin\lib\site-packages\chimerax\ui\gui.py", line 301 in event_loop
  File "C:\Program Files\ChimeraX 1.3\bin\lib\site-packages\ChimeraX_main.py", line 867 in init
  File "C:\Program Files\ChimeraX 1.3\bin\lib\site-packages\ChimeraX_main.py", line 1018 in 
  File "C:\Program Files\ChimeraX 1.3\bin\lib\runpy.py", line 87 in _run_code
  File "C:\Program Files\ChimeraX 1.3\bin\lib\runpy.py", line 197 in _run_module_as_main
===== Log before crash start =====
> open "C:\Users\Do Hyun Bae\Dropbox\Skin\Rendering\PDE4\Docking\ROL\ROL.mol2"
> format mol2

Chain information for ROL #1  
---  
Chain | Description  
X | No description available  
  
Opened ROL.mol2 containing 1 structures (2645 atoms, 2702 bonds)  

> select ligand

20 atoms, 22 bonds, 1 residue, 1 model selected  

> color #1 #aa00ff transparency 0

> color #1 #00557f transparency 0

> color #1 #005500 transparency 0

> color #1 #00007f transparency 0

> color #1 #5500ff transparency 0

> color #1 #5555ff transparency 0

> color #1 #005500 transparency 0

> color #1 #005543 transparency 0

> color #1 #060055 transparency 0

> color #1 #105544 transparency 0

> color #1 #005539 transparency 0

> color #1 #5500ff transparency 0

> color #1 #005500 transparency 0

> lighting soft

> lighting full

> lighting soft

> color sel orange

> color sel byhetero

> select backbone

1292 atoms, 1291 bonds, 323 residues, 1 model selected  

> volume style surface

No volumes specified  

> volume style surface

No volumes specified  

> volume style mesh

No volumes specified  

> volume style surface

No volumes specified  

> surface sel

> select /X

2645 atoms, 2702 bonds, 324 residues, 1 model selected  

> surface (#!1 & sel)

QObject::~QObject: Timers cannot be stopped from another thread  


===== Log before crash end =====

Log:
UCSF ChimeraX version: 1.3 (2021-12-08)  
© 2016-2021 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  




OpenGL version: 3.3.0 NVIDIA 472.08
OpenGL renderer: NVIDIA GeForce GTX 1050/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: OptiPlex 7770 AIO
OS: Microsoft Windows 11 Pro (Build 22000)
Memory: 8,377,745,408
MaxProcessMemory: 137,438,953,344
CPU: 8 Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
OSLanguage: ko-KR
Locale: ('ko_KR', 'cp949')
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: 2021.10.8
    cftime: 1.5.1.1
    charset-normalizer: 2.0.9
    ChimeraX-AddCharge: 1.2.2
    ChimeraX-AddH: 2.1.11
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.2.3
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.31
    ChimeraX-AtomicLibrary: 4.2
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AtomSearchLibrary: 1.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.0
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.6.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.1
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.2
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.2
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5
    ChimeraX-CommandLine: 1.1.5
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.3
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0
    ChimeraX-DataFormats: 1.2.2
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1.5
    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.1
    ChimeraX-Hbonds: 2.1.2
    ChimeraX-Help: 1.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ItemsInspection: 1.0
    ChimeraX-Label: 1.1
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.4
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 2.0.4
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.4
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.2.6
    ChimeraX-ModelPanel: 1.2.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.2
    ChimeraX-OpenCommand: 1.7
    ChimeraX-PDB: 2.6.5
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0.1
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.4.6
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.1
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.6.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.1
    ChimeraX-ToolshedUtils: 1.2
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.13.7
    ChimeraX-uniprot: 2.2
    ChimeraX-UnitCell: 1.0
    ChimeraX-ViewDockX: 1.0.1
    ChimeraX-VIPERdb: 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.4
    comtypes: 1.1.10
    cxservices: 1.1
    cycler: 0.11.0
    Cython: 0.29.24
    decorator: 5.1.0
    docutils: 0.17.1
    filelock: 3.0.12
    funcparserlib: 0.3.6
    grako: 3.16.5
    h5py: 3.6.0
    html2text: 2020.1.16
    idna: 3.3
    ihm: 0.21
    imagecodecs: 2021.4.28
    imagesize: 1.3.0
    ipykernel: 5.5.5
    ipython: 7.23.1
    ipython-genutils: 0.2.0
    jedi: 0.18.0
    Jinja2: 3.0.1
    jupyter-client: 6.1.12
    jupyter-core: 4.9.1
    kiwisolver: 1.3.2
    lxml: 4.6.3
    lz4: 3.1.3
    MarkupSafe: 2.0.1
    matplotlib: 3.4.3
    matplotlib-inline: 0.1.3
    msgpack: 1.0.2
    netCDF4: 1.5.7
    networkx: 2.6.3
    numexpr: 2.8.0
    numpy: 1.21.2
    openvr: 1.16.801
    packaging: 21.3
    ParmEd: 3.2.0
    parso: 0.8.3
    pickleshare: 0.7.5
    Pillow: 8.3.2
    pip: 21.2.4
    pkginfo: 1.7.1
    prompt-toolkit: 3.0.23
    psutil: 5.8.0
    pycollada: 0.7.1
    pydicom: 2.1.2
    Pygments: 2.10.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.6
    PyQt5-commercial: 5.15.2
    PyQt5-sip: 12.8.1
    PyQtWebEngine-commercial: 5.15.2
    python-dateutil: 2.8.2
    pytz: 2021.3
    pywin32: 228
    pyzmq: 22.3.0
    qtconsole: 5.1.1
    QtPy: 1.11.3
    RandomWords: 0.3.0
    requests: 2.26.0
    scipy: 1.7.1
    setuptools: 57.5.0
    sfftk-rw: 0.7.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 4.2.0
    sphinx-autodoc-typehints: 1.12.0
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    suds-jurko: 0.6
    tables: 3.6.1
    tifffile: 2021.4.8
    tinyarray: 1.2.3
    tornado: 6.1
    traitlets: 5.1.1
    urllib3: 1.26.7
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.37.0
    wheel-filename: 1.3.0
    WMI: 1.5.1

Change History (3)

comment:1 by Eric Pettersen, 3 years ago

Component: UnassignedWindow Toolkit
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionQObject::~QObject: Timers cannot be stopped from another thread

comment:2 by Eric Pettersen, 3 years ago

Cc: Tom Goddard added
Resolution: can't reproduce
Status: acceptedclosed

comment:3 by Tom Goddard, 3 years ago

It's not clear if the timer error message was the cause of the crash, but seems plausible. On the other hand the Python traceback from faulthandler I think lists the crashing thread traceback last (not sure about that -- pretty lame if you can't tell which thread crashed), and the last one is the main thread running the Qt event loop. So that would suggest that whatever non-main thread deleted the QObject did not actually crash.

The final command before the timer error is a surface command which uses threads to compute each chain surface. The surface calculation threads don't do anything with Qt (as far as I know). The get the atom coordinates and run C++ to compute the surface geometry. They use core/threadq.py which uses the standard Python queue module again no use of Qt. So it is not clear how a Qt object could be deleted in any of the surface calculation threads. I guess it was probably some other unknown thread that deleted the QObject.

Looks like not enough info to debug. Have not seen this before so hopefully rare. But who knows, maybe this is the cause of many Qt event_loop crashes and the QObject delete in non-main thread just rarely makes it to the log before crashing.

> surface (#!1 & sel)

QObject::~QObject: Timers cannot be stopped from another thread  
Note: See TracTickets for help on using tickets.