#6978 closed defect (fixed)
Blocking not honored for web jobs
Reported by: | Eric Pettersen | Owned by: | Zach Pearson |
---|---|---|---|
Priority: | blocker | Milestone: | 1.5 |
Component: | Infrastructure | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | 5223 | |
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-10.15.7-x86_64-i386-64bit ChimeraX Version: 1.4.dev202204260114 (2022-04-26 01:14:38 UTC) Description Web jobs not honoring blocking. The modeller/color command in the included log immediately colors all models red, before any results are returned. Log: UCSF ChimeraX version: 1.4.dev202204260114 (2022-04-26) © 2016-2022 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /Users/pett/src/chimerax/src/bundles/alignments/test-data/nonassoc.fa > format fasta Summary of feedback from opening /Users/pett/src/chimerax/src/bundles/alignments/test-data/nonassoc.fa --- notes | Alignment identifier is nonassoc.fa Showing conservation header ("seq_conservation" residue attribute) for alignment nonassoc.fa Opened 5 sequences from nonassoc.fa > open 1qvc 1qvc title: Crystal structure analysis of single stranded DNA binding protein (SSB) from E.coli [more info...] Chain information for 1qvc #1 --- Chain | Description | UniProt A B C D | single stranded DNA binding protein monomer | SSB_ECOLI Associated 1qvc chain A to 1qvc with 0 mismatches Associated 1qvc chain B to 1qvc with 0 mismatches Associated 1qvc chain C to 1qvc with 0 mismatches Associated 1qvc chain D to 1qvc with 0 mismatches > help modeller > modeller comparative :T0151 block true > color red Webservices job id: REHA45RXP8HLBJ5F QMainWindowLayout::tabPosition called with out-of-bounds value '0' Modeller job ID REHA45RXP8HLBJ5F finished Parameters --- Chain pairing | ss Alignment algorithm | Needleman-Wunsch Similarity matrix | BLOSUM-62 SS fraction | 0.3 Gap open (HH/SS/other) | 18/18/6 Gap extend | 1 SS matrix | | | H | S | O ---|---|---|--- H | 6 | -9 | -6 S | | 6 | -6 O | | | 4 Iteration cutoff | 2 Matchmaker 1qvc, chain A (#1) with T0151, chain A (#), sequence alignment score = 287.8 Matchmaker 1qvc, chain B (#1) with T0151, chain B (#), sequence alignment score = 319 Matchmaker 1qvc, chain C (#1) with T0151, chain C (#), sequence alignment score = 289.2 Matchmaker 1qvc, chain D (#1) with T0151, chain D (#), sequence alignment score = 284.4 RMSD between 386 pruned atom pairs is 0.511 angstroms; (across all 569 pairs: 8.289) Parameters --- Chain pairing | ss Alignment algorithm | Needleman-Wunsch Similarity matrix | BLOSUM-62 SS fraction | 0.3 Gap open (HH/SS/other) | 18/18/6 Gap extend | 1 SS matrix | | | H | S | O ---|---|---|--- H | 6 | -9 | -6 S | | 6 | -6 O | | | 4 Iteration cutoff | 2 Matchmaker 1qvc, chain A (#1) with T0151, chain A (#), sequence alignment score = 298.6 Matchmaker 1qvc, chain B (#1) with T0151, chain B (#), sequence alignment score = 301 Matchmaker 1qvc, chain C (#1) with T0151, chain C (#), sequence alignment score = 289.2 Matchmaker 1qvc, chain D (#1) with T0151, chain D (#), sequence alignment score = 284.4 RMSD between 391 pruned atom pairs is 0.497 angstroms; (across all 569 pairs: 8.234) Parameters --- Chain pairing | ss Alignment algorithm | Needleman-Wunsch Similarity matrix | BLOSUM-62 SS fraction | 0.3 Gap open (HH/SS/other) | 18/18/6 Gap extend | 1 SS matrix | | | H | S | O ---|---|---|--- H | 6 | -9 | -6 S | | 6 | -6 O | | | 4 Iteration cutoff | 2 Matchmaker 1qvc, chain A (#1) with T0151, chain A (#), sequence alignment score = 316.6 Matchmaker 1qvc, chain B (#1) with T0151, chain B (#), sequence alignment score = 297.4 Matchmaker 1qvc, chain C (#1) with T0151, chain C (#), sequence alignment score = 283.2 Matchmaker 1qvc, chain D (#1) with T0151, chain D (#), sequence alignment score = 280.8 RMSD between 387 pruned atom pairs is 0.488 angstroms; (across all 569 pairs: 8.228) Parameters --- Chain pairing | ss Alignment algorithm | Needleman-Wunsch Similarity matrix | BLOSUM-62 SS fraction | 0.3 Gap open (HH/SS/other) | 18/18/6 Gap extend | 1 SS matrix | | | H | S | O ---|---|---|--- H | 6 | -9 | -6 S | | 6 | -6 O | | | 4 Iteration cutoff | 2 Matchmaker 1qvc, chain A (#1) with T0151, chain A (#), sequence alignment score = 302.2 Matchmaker 1qvc, chain B (#1) with T0151, chain B (#), sequence alignment score = 315.4 Matchmaker 1qvc, chain C (#1) with T0151, chain C (#), sequence alignment score = 288 Matchmaker 1qvc, chain D (#1) with T0151, chain D (#), sequence alignment score = 284.4 RMSD between 388 pruned atom pairs is 0.544 angstroms; (across all 569 pairs: 8.248) Parameters --- Chain pairing | ss Alignment algorithm | Needleman-Wunsch Similarity matrix | BLOSUM-62 SS fraction | 0.3 Gap open (HH/SS/other) | 18/18/6 Gap extend | 1 SS matrix | | | H | S | O ---|---|---|--- H | 6 | -9 | -6 S | | 6 | -6 O | | | 4 Iteration cutoff | 2 Matchmaker 1qvc, chain A (#1) with T0151, chain A (#), sequence alignment score = 295 Matchmaker 1qvc, chain B (#1) with T0151, chain B (#), sequence alignment score = 304.6 Matchmaker 1qvc, chain C (#1) with T0151, chain C (#), sequence alignment score = 277.2 Matchmaker 1qvc, chain D (#1) with T0151, chain D (#), sequence alignment score = 284.4 RMSD between 383 pruned atom pairs is 0.574 angstroms; (across all 569 pairs: 8.312) Associated T0151 chain A to T0151 with 0 mismatches Associated T0151 chain B to T0151 with 0 mismatches Associated T0151 chain C to T0151 with 0 mismatches Associated T0151 chain D to T0151 with 0 mismatches Associated T0151 chain A to T0151 with 0 mismatches Associated T0151 chain B to T0151 with 0 mismatches Associated T0151 chain C to T0151 with 0 mismatches Associated T0151 chain D to T0151 with 0 mismatches Associated T0151 chain A to T0151 with 0 mismatches Associated T0151 chain B to T0151 with 0 mismatches Associated T0151 chain C to T0151 with 0 mismatches Associated T0151 chain D to T0151 with 0 mismatches Associated T0151 chain A to T0151 with 0 mismatches Associated T0151 chain B to T0151 with 0 mismatches Associated T0151 chain C to T0151 with 0 mismatches Associated T0151 chain D to T0151 with 0 mismatches Associated T0151 chain A to T0151 with 0 mismatches Associated T0151 chain B to T0151 with 0 mismatches Associated T0151 chain C to T0151 with 0 mismatches Associated T0151 chain D to T0151 with 0 mismatches Chain information for T0151 --- Chain | Description 2.1/A 2.2/A 2.3/A 2.4/A 2.5/A 2.1/B 2.2/B 2.3/B 2.4/B 2.5/B 2.1/C 2.2/C 2.3/C 2.4/C 2.5/C 2.1/D 2.2/D 2.3/D 2.4/D 2.5/D | No description available OpenGL version: 4.1 INTEL-14.7.23 OpenGL renderer: Intel(R) Iris(TM) Pro Graphics 6200 OpenGL vendor: Intel Inc. Python: 3.9.11 Locale: UTF-8 Qt version: PyQt6 6.3.0, Qt 6.3.0 Qt runtime version: 6.3.0 Qt platform: cocoa Hardware: Hardware Overview: Model Name: iMac Model Identifier: iMac16,2 Processor Name: Quad-Core Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB Boot ROM Version: 428.60.3.0.0 SMC Version (system): 2.32f21 Software: System Software Overview: System Version: macOS 10.15.7 (19H1824) Kernel Version: Darwin 19.6.0 Time since boot: 8:06 Graphics/Displays: Intel Iris Pro Graphics 6200: Chipset Model: Intel Iris Pro Graphics 6200 Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Vendor: Intel Device ID: 0x1622 Revision ID: 0x000a Metal: Supported, feature set macOS GPUFamily1 v4 Displays: iMac: Display Type: LCD Resolution: 1920 x 1080 (1080p FHD - Full High Definition) UI Looks like: 1920 x 1080 Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 appnope: 0.1.3 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.2 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.dev202204260114 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-XMAS: 1.1.1 ChimeraX-Zone: 1.0 colorama: 0.4.4 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 et-xmlfile: 1.1.0 filelock: 3.4.2 fonttools: 4.33.2 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 MolecularDynamicsViewer: 1.4 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 openpyxl: 3.0.9 openvr: 1.16.802 packaging: 21.0 pandas: 1.4.2 ParmEd: 3.4.3 parso: 0.8.3 pexpect: 4.8.0 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 ptyprocess: 0.7.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 pyzmq: 22.3.0 qtconsole: 5.3.0 QtPy: 2.0.1 QtRangeSlider: 0.1.5 RandomWords: 0.3.0 requests: 2.27.1 scipy: 1.7.3 seaborn: 0.11.2 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 File attachment: nonassoc.fa
Attachments (1)
Change History (13)
by , 3 years ago
Attachment: | nonassoc.fa added |
---|
comment:1 by , 3 years ago
Component: | Unassigned → Infrastructure |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Blocking not honored for web jobs |
Looking at CxServicesJob, it looks like it doesn't support a 'blocking' keyword supplied to the start() method. It needs to support blocking so that scripts that rely on web services work correctly. As a consequence I suppose, the reimplemented ModellerWebJob class that inherits from CxServicesJob just takes its 'block' parameter and throws it on the floor.
Noticed this when reimplementing the sequence alignment web services, which want to optionally block.
comment:2 by , 3 years ago
Milestone: | → 1.5 |
---|
comment:3 by , 3 years ago
Blocking: | → 5223 |
---|---|
Priority: | normal → blocker |
comment:4 by , 3 years ago
CxServicesJob has no start method, it subclasses from Job (which subclasses from Task) and uses Task's start method. I think the issue with Modeller is that its keyword is 'block' and not 'blocking'.
comment:5 by , 3 years ago
When implemented as a subclass of OpalJob, ModellerWebJob took a 'block' positional parameter and called self.start(..., blocking=block). When implemented as a subclass of CxServicesJob, it takes a 'block' positional parameter and does nothing with it.
comment:6 by , 3 years ago
Yep, I saw :) I was just clarifying the inheritance. The local job calls start with "blocking=block", the webservice needs to, too.
comment:9 by , 3 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Is there a particular reason you are doing kw.pop('blocking', False) rather than kw.get('blocking', False)? Using kw.pop() causes on_finish() to be called twice because the kw.get('blocking', False) call in _run_thread no longer works right.
comment:10 by , 3 years ago
I used kw.pop(...) because it removes blocking from the keyword argument dictionary. But that call should actually be first in _run_thread, I suppose. It has to be removed from kwargs before kwargs gets passed to the Job.run method, which complains that it doesn't recognize the 'blocking' argument. Sorry about that, I'll make the fix.
comment:12 by , 3 years ago
Still doesn't work because start() calls _run_thread(), both of which are doing a pop(). Changed start() to use get() and also changed run() doc string to no longer say that the 'blocking' keyword will be passed in.
Added by email2trac