#6743 closed defect (can't reproduce)
Crash processing events or recording movie
| Reported by: | Owned by: | Eric Pettersen | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Input/Output | 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.4.dev202204270129 (2022-04-27 01:29:17 UTC)
Description
Last time you used ChimeraX it crashed.
Please describe steps that led to the crash here.
Windows fatal exception: code 0x8001010d
Thread 0x00003610 (most recent call first):
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\threading.py", line 316 in wait
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\threading.py", line 574 in wait
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\threading.py", line 1297 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\threading.py", line 973 in _bootstrap_inner
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\threading.py", line 930 in _bootstrap
Current thread 0x00007364 (most recent call first):
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\ui\gui.py", line 849 in rapid_access_shown
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\ui\gui.py", line 852 in _check_rapid_access
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\triggerset.py", line 134 in invoke
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\triggerset.py", line 217 in _activate
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\triggerset.py", line 186 in activate
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\triggerset.py", line 354 in activate_trigger
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\models.py", line 677 in add
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 248 in provider_open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 118 in cmd_open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\run.py", line 38 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\scripting.py", line 173 in _run_commands
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\scripting.py", line 160 in open_command_script
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core_formats\__init__.py", line 37 in open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 428 in remember_data_format
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 440 in collated_open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 193 in provider_open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\open_command\cmd.py", line 118 in cmd_open
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\chimerax\core\commands\run.py", line 38 in run
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\ChimeraX_main.py", line 846 in init
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\site-packages\ChimeraX_main.py", line 1018 in
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\runpy.py", line 87 in _run_code
File "C:\Program Files\ChimeraX 1.4.dev202204270129\bin\lib\runpy.py", line 197 in _run_module_as_main
===== Log before crash start =====
UCSF ChimeraX version: 1.4.dev202204270129 (2022-04-27)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open "C:\\\Users\\\windo\\\Documents\\\Alex's Shared Resources\\\Uni\\\Year
> 3\\\Semester 2\\\Structures of destruction\\\Video Project Folder\\\Spinning
> NPC-C1 with focus on loops at the ened\\\Script.cxc"
> open 5F18
5f18 title:
Structural basis of Ebola virus entry: viral glycoprotein bound to its
endosomal receptor Niemann-Pick C1 [more info...]
Chain information for 5f18 #1
---
Chain | Description | UniProt
A | Niemann-Pick C1 protein | NPC1_HUMAN
> cd "C:/Users/windo/Documents/Alex's Shared Resources/Uni/Year 3/Semester
> 2/Structures of destruction/Video Project Folder/Spinning NPC-C1 with focus
> on loops at the ened"
Current working directory is: C:\Users\windo\Documents\Alex's Shared
Resources\Uni\Year 3\Semester 2\Structures of destruction\Video Project
Folder\Spinning NPC-C1 with focus on loops at the ened
> wait 60
> set bgColor white
> select /A
1969 atoms, 1850 bonds, 398 residues, 1 model selected
> rainbow
> setattr :126-128 res ss_type 0
Assigning ss_type attribute to 3 items
> setattr :133-135 res ss_type 0
Assigning ss_type attribute to 3 items
> select clear
> turn y 90
> turn x 90
> turn z 80
> view
> view name center
> zoom 2
> move y -20
> turn y 90
> move x -8
> view name loops-b-two
> view center
> movie record size 1920, 1080
> turn y 2 600
> wait 600
===== Log before crash end =====
Log:
UCSF ChimeraX version: 1.4.dev202204270129 (2022-04-27)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open "C:\\\Users\\\windo\\\Documents\\\Alex's Shared Resources\\\Uni\\\Year
> 3\\\Semester 2\\\Structures of destruction\\\Video Project Folder\\\Spinning
> NPC-C1 with focus on loops at the ened\\\Script.cxc"
> open 5F18
5f18 title:
Structural basis of Ebola virus entry: viral glycoprotein bound to its
endosomal receptor Niemann-Pick C1 [more info...]
Chain information for 5f18 #1
---
Chain | Description | UniProt
A | Niemann-Pick C1 protein | NPC1_HUMAN
> cd "C:/Users/windo/Documents/Alex's Shared Resources/Uni/Year 3/Semester
> 2/Structures of destruction/Video Project Folder/Spinning NPC-C1 with focus
> on loops at the ened"
Current working directory is: C:\Users\windo\Documents\Alex's Shared
Resources\Uni\Year 3\Semester 2\Structures of destruction\Video Project
Folder\Spinning NPC-C1 with focus on loops at the ened
> wait 60
> set bgColor white
> select /A
1969 atoms, 1850 bonds, 398 residues, 1 model selected
> rainbow
> setattr :126-128 res ss_type 0
Assigning ss_type attribute to 3 items
> setattr :133-135 res ss_type 0
Assigning ss_type attribute to 3 items
> select clear
> turn y -60
> turn z 120
> turn x 40
> view
> view name center
> zoom 2.5
> turn x 180
> move y -20
> view name loops-b-two
> view center
> movie record size 1920, 1080
> turn y 2 600
> wait 600
> view loops-b-two 75
> wait 75
[Repeated 1 time(s)]
> movie encode spinning_NPC_C1_with_focus_on_loops_at_end.mp4
Movie saved to spinning_NPC_C1_with_focus_on_loops_at_end.mp4
> view loops-b-two
> movie record size 1920, 1080
> wait 250
> movie encode loop_still_frame_10_secs.mp4
Movie saved to loop_still_frame_10_secs.mp4
executed Script.cxc
OpenGL version: 3.3.0 NVIDIA 512.59
OpenGL renderer: NVIDIA GeForce RTX 2060/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.9.11
Locale: en_US.cp1252
Qt version: PyQt6 6.3.0, Qt 6.3.0
Qt runtime version: 6.3.0
Qt platform: windows
Manufacturer: Razer
Model: Blade 15 Mid 2019-Base
OS: Microsoft Windows 11 Home (Build 22000)
Memory: 17,073,299,456
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
OSLanguage: en-GB
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.10.1
backcall: 0.2.0
blockdiag: 3.0.0
certifi: 2021.10.8
cftime: 1.6.0
charset-normalizer: 2.0.12
ChimeraX-AddCharge: 1.2.3
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.1
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.4.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.38.2
ChimeraX-AtomicLibrary: 7.0
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.1
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.7
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.3
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.1
ChimeraX-CommandLine: 1.2.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.4.dev202204270129
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.1
ChimeraX-DistMonitor: 1.1.5
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.2
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.1
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
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.6
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.7
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.5.5
ChimeraX-ModelPanel: 1.3.2
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.9
ChimeraX-PDB: 2.6.6
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.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.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.8
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.0.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.16.5
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.1.2
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.1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
comtypes: 1.1.10
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.26
debugpy: 1.6.0
decorator: 5.1.1
docutils: 0.17.1
entrypoints: 0.4
filelock: 3.4.2
fonttools: 4.33.3
funcparserlib: 1.0.0a1
grako: 3.16.5
h5py: 3.6.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.27
imagecodecs: 2021.11.20
imagesize: 1.3.0
ipykernel: 6.6.1
ipython: 7.31.1
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.0.3
jupyter-client: 7.1.0
jupyter-core: 4.10.0
kiwisolver: 1.4.2
line-profiler: 3.4.0
lxml: 4.7.1
lz4: 3.1.10
MarkupSafe: 2.1.1
matplotlib: 3.5.1
matplotlib-inline: 0.1.3
msgpack: 1.0.3
nest-asyncio: 1.5.5
netCDF4: 1.5.8
networkx: 2.6.3
numexpr: 2.8.1
numpy: 1.22.1
openvr: 1.16.802
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pickleshare: 0.7.5
Pillow: 9.0.1
pip: 21.3.1
pkginfo: 1.8.2
prompt-toolkit: 3.0.29
psutil: 5.9.0
pycollada: 0.7.2
pydicom: 2.2.2
Pygments: 2.11.2
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.8
PyQt6-commercial: 6.3.0
PyQt6-Qt6: 6.3.0
PyQt6-sip: 13.3.1
PyQt6-WebEngine-commercial: 6.3.0
PyQt6-WebEngine-Qt6: 6.3.0
python-dateutil: 2.8.2
pytz: 2022.1
pywin32: 303
pyzmq: 22.3.0
qtconsole: 5.3.0
QtPy: 2.0.1
RandomWords: 0.3.0
requests: 2.27.1
scipy: 1.7.3
setuptools: 59.8.0
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.3.2
sphinx-autodoc-typehints: 1.15.2
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.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-community: 1.0.0
tables: 3.7.0
tifffile: 2021.11.2
tinyarray: 1.2.4
tornado: 6.1
traitlets: 5.1.1
urllib3: 1.26.9
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.1
wheel-filename: 1.3.0
WMI: 1.5.1
Attachments (1)
Change History (8)
comment:1 by , 3 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Input/Output |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → accepted |
| Summary: | ChimeraX bug report submission → Crash processing events or recording movie |
comment:2 by , 3 years ago
| Resolution: | → can't reproduce |
|---|---|
| Status: | accepted → closed |
comment:3 by , 3 years ago
The faulthandler Python traceback shows it in open_command_script() and the first line of the log shows the user opening the *.cxc file. But the log shows just one open command, apparently the first line of the script file "open 5F18" and no other open commands, but the faulthandler traceback shows it is in the open command. It seems like either the faulthandler logged the traceback when the first line of the script was run and did not result in a crash, or there is another open command after the last line shown in the log output. The traceback indicates the open command should already have been logged and flushed to the log file.
At any rate the crash is in some new code added 14 days ago in ui/gui.py in rapid_access_shown()
if self.session.in_script:
# get the graphics to actually hide/show
self.session.ui.processEvents()
and this code is doing sub-eventloop processing which is an invitation to crash. We should never be doing sub-eventloop processing. We have had this in other places in the code in the past resulting in crashes and took it out to fix those crashes. I would suggest removing that code, and finding an alternative solution to the problem it addressed.
comment:4 by , 3 years ago
I am open to ideas for how to get the graphics window to show immediately during a script without event processing.
comment:5 by , 3 years ago
I don't recall why it is needed for rapid access to hide while the script runs. I think image save is supposed to work even when the graphics is hidden. But if there is a critical reason that it has to hide, maybe the code that runs the script would have to queue an event to defer the script execution until after the code returns to the event loop. I think that is asking for problems though.
follow-up: 5 comment:6 by , 3 years ago
The reason is that the graphics window won't redraw unless isExposed() is True for its widget (and it doesn't change to True until events are processed), so it is impossible to see what a script you are developing does unless you manually hide Rapid Access before running it -- you will only see the last frame.
comment:7 by , 3 years ago
If the GUI needs to reconfigure itself before running some code (for example, a script) then the top level event loop needs to run, so the script execution would have to be queued. But I would not do that. Instead I would consider it a limitation that if you run a script by clicking on a file history thumbnail then the graphics does not update on the display. This problem is specific to movie recording scripts, since other scripts with no wait commands won't update the display in any case. I have recorded many movies with scripts but never was disturbed by this problem. While it might be nice to see the movie progress it seems inessential. If an error happens you see where it stopped, both in the graphics and the log. If no error happens then you have to view the movie to see if it looks good, because the frame rate will be much different from what you see on screen during the recording. So I'd just call it a limitation.
Chimera's log and the Python stack trace don't really seem to be in agreement. According to the log, a movie was being recorded. According to the stack trace, the process_events() to force Rapid Access to hide was being run. I've attached a script that contains the commands that can be seen in the log, and it works on my home Mac and on snow (Windows).