Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#5077 closed defect (fixed)

"Access violation" fetching BLAST PDB info

Reported by: chimerax-bug-report@… Owned by: Zach Pearson
Priority: normal Milestone:
Component: Sequence Version:
Keywords: Cc: Tom Goddard, pett
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.19041
ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC)
Description
Last time you used ChimeraX it crashed.
Please describe steps that led to the crash here.
Windows fatal exception: access violation

Current thread 0x00006e78 (most recent call first):
  File "", line 1 in 
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\blastprotein\pdbinfo.py", line 151 in fetch_pdb_info
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\blastprotein\tool.py", line 339 in _add_pdbinfo
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\blastprotein\tool.py", line 322 in _show_results
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\blastprotein\tool.py", line 280 in job_finished
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\blastprotein\job.py", line 92 in on_finish
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\ui\gui.py", line 648 in customEvent
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\chimerax\ui\gui.py", line 293 in event_loop
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\ChimeraX_main.py", line 866 in init
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\site-packages\ChimeraX_main.py", line 1015 in 
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\runpy.py", line 87 in _run_code
  File "C:\Users\ekatpe\Programs\ChimeraX 1.2.5\bin\lib\runpy.py", line 194 in _run_module_as_main


Log:
UCSF ChimeraX version: 1.2.5 (2021-05-24)  
© 2016-2021 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  




OpenGL version: 3.3.0 NVIDIA 452.69
OpenGL renderer: Quadro P1000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: HP
Model: HP ZBook Studio G5
OS: Microsoft Windows 10 Education (Build 19042)
Memory: 16,981,991,424
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
OSLanguage: en-US
Locale: ('en_150', 'cp1252')
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.5.0
    chardet: 3.0.4
    ChimeraX-AddCharge: 1.0.1
    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.2
    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.5
    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-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.6
    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.9
    distlib: 0.3.1
    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.1
    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
    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
    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
    pywin32: 228
    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: 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: 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.3.0
    WMI: 1.5.1

Change History (6)

comment:1 by pett, 4 years ago

Cc: Tom Goddard added
Component: UnassignedSequence
Owner: set to pett
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submission"Access violation" fetching BLAST PDB info

comment:2 by pett, 4 years ago

Resolution: can't reproduce
Status: acceptedclosed

comment:3 by Tom Goddard, 4 years ago

Resolution: can't reproduce
Status: closedreopened

comment:4 by Tom Goddard, 4 years ago

Cc: pett added
Owner: changed from pett to Zach Pearson
Status: reopenedassigned

This crash was in blastprotein running eval(data) where data was returned by the RCSB GraphQL REST API. The data is supposed to be JSON. Doing a Python eval is dangerous and in this bug report managed to crash ChimeraX. It should of course be parsed with the Python json module.

Zach could you change that blastprotein eval(data) code to parse with the Python json module instead and test to verify that it is working?

comment:5 by Zach Pearson, 4 years ago

Resolution: fixed
Status: assignedclosed

Should be fixed by https://github.com/RBVI/ChimeraX/commit/3731a0355a17a38c48b93962c758be3fb32f1853

There's no indication of what the user was trying to BLAST and I'd be interested in knowing, but I tested a few different proteins and didn't have an issue with this code.

comment:6 by pett, 4 years ago

While this change is undoubtedly an improvement, it is unlikely to fix "the problem". We have been getting "access violation"s all over the ChimeraX code base on Windows platforms, and this is probably another example of it. Prior memory corruption is likely. Doing an eval(), particularly of data returned from the PDB, is extremely unlikely to cause a crash. A Python traceback would almost certainly be the result.

Note: See TracTickets for help on using tickets.