Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#6743 closed defect (can't reproduce)

Crash processing events or recording movie

Reported by: chimerax-bug-report@… 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)

script.cxc (332 bytes ) - added by Eric Pettersen 3 years ago.
script containing commands visible in the log

Download all attachments as: .zip

Change History (8)

comment:1 by Eric Pettersen, 3 years ago

Cc: Tom Goddard added
Component: UnassignedInput/Output
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionCrash processing events or recording movie

comment:2 by Eric Pettersen, 3 years ago

Resolution: can't reproduce
Status: acceptedclosed

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).

by Eric Pettersen, 3 years ago

Attachment: script.cxc added

script containing commands visible in the log

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

I am open to ideas for how to get the graphics window to show immediately during a script without event processing.

in reply to:  6 comment:5 by goddard@…, 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.

comment:6 by Eric Pettersen, 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.

in reply to:  8 comment:7 by goddard@…, 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.

Note: See TracTickets for help on using tickets.