Opened 5 years ago
Last modified 5 years ago
#4547 assigned defect
Duplicate manager initialization
| Reported by: | Tony Schaefer | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Tool Shed | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| 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.3.dev202104192245 (2021-04-19 22:45:47 UTC)
Description
Gave "toolshed install seqcrow" command. Confusing messsages are coming from SEQCROW bundle.
Log:
UCSF ChimeraX version: 1.3.dev202104192245 (2021-04-19)
© 2016-2021 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> toolshed install seqcrow
Successfully installed SEQCROW-0.25.2
Installed SEQCROW (0.25.2)
resumed SEQCROW queue
adding Gaussian format
adding ORCA format
adding Psi4 format
adding Gaussian format
adding ORCA format
adding Psi4 format
adding Gaussian format
local job type Gaussian from SEQCROW supplanted that from SEQCROW
adding ORCA format
local job type ORCA from SEQCROW supplanted that from SEQCROW
adding Psi4 format
local job type Psi4 from SEQCROW supplanted that from SEQCROW
adding Gaussian format
file format Gaussian from SEQCROW supplanted that from SEQCROW
adding ORCA format
file format ORCA from SEQCROW supplanted that from SEQCROW
adding Psi4 format
file format Psi4 from SEQCROW supplanted that from SEQCROW
> fuseRing
missing required "rings" argument
OpenGL version: 3.3.0 NVIDIA 461.72
OpenGL renderer: GeForce GTX 970/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: MSI
Model: MS-7885
OS: Microsoft Windows 10 Home (Build 19041)
Memory: 34,258,157,568
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz
OSLanguage: en-US
Locale: ('en_US', 'cp1252')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.9.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.12.5
cftime: 1.4.1
chardet: 3.0.4
ChimeraX-AddCharge: 1.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.16
ChimeraX-AtomicLibrary: 3.1.2
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.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.3.dev202104192245
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.1
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1.1
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-ItemsInspection: 1.0
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
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
ChimeraX-ModelPanel: 1.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
ChimeraX-OpenCommand: 1.5
ChimeraX-PDB: 2.4.1
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0
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.4
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.8
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.7
distlib: 0.3.1
docutils: 0.16
filelock: 3.0.12
flake8: 3.9.1
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: 1.1.1
matplotlib: 3.3.2
mccabe: 0.6.1
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
pycodestyle: 2.7.0
pycollada: 0.7.1
pydicom: 2.0.0
pyflakes: 2.3.1
Pygments: 2.7.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine: 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
Send2Trash: 1.5.0
SEQCROW: 0.25.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: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
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 , 5 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Third Party |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Spurious? messages from SEQCROW during installation |
follow-up: 2 comment:2 by , 5 years ago
comment:3 by , 5 years ago
So you're saying that your ProviderManagers are having their add_provider methods called twice when they should be called once? If so, I can look into it...
--Eric
comment:4 by , 5 years ago
There are two separate managers that are giving the same adding format message. So they're not being called twice, it's just the message is shown twice.
The file format Psi4 from SEQCROW supplanted that from SEQCROW message is also confusing. Didn't track that down.
The resumed SEQCROW queue is probably because it doesn't distinguish between starting it the first time and subsequent times.
follow-up: 5 comment:5 by , 5 years ago
I'll have to look into the queue issue some more.
There are two managers (JobManager prints "local job type..." and QMInputManager prints "file format...") and I think add_provider is called twice for both of them - whether that's my fault or not, I'm not sure. I know it's called twice because if it was only called once, the Psi4 (or whichever) file format would only get added once and thus would never be supplanted. I only see these messages when I reinstall SEQCROW, so either it's only called twice when the bundle is installed, or it's always called twice but I only see it after reinstalling because the logger has finished setting up.
It might be happening because I have two providers with the same name for different managers. JobManager and QMInputManager have different Psi4, Gaussian, and ORCA providers - see https://github.com/QChASM/SEQCROW/blob/2d16e68693153efc95d289e5e109b06c0d042a44/bundle_info.xml#L140. I'd think they would be kept separate because they have different managers, so that probably isn't it. Just spit balling.
The QMInputManager (manages file formats) is a bit simpler than the JobManager (queues and runs jobs for QM software, tracks finished jobs). Code is here: https://github.com/QChASM/SEQCROW/blob/dev/src/managers/qm_input_manager.py
As you can see, all the add_provider method does is put the bundle info in a dictionary with the provider name as the key. If there's already an entry in the dictionary with that key, it prints the "file format X from Y supplanted that from Z" message. The message from the JobManager is the same, except it starts with "local job type...". I don't make any explicit calls to add_provider, but maybe there's something I'm doing that I don't realize calls add_provider.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Thursday, April 22, 2021 5:43 PM
Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #4547: Spurious? messages from SEQCROW during installation
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
#4547: Spurious? messages from SEQCROW during installation
----------------------------------+---------------------------
Reporter: Greg Couch | Owner: Tony Schaefer
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: Third Party | Version:
Resolution: | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
----------------------------------+---------------------------
Comment (by Greg Couch):
There are two separate managers that are giving the same adding format
message. So they're not being called twice, it's just the message is
shown twice.
The {{{file format Psi4 from SEQCROW supplanted that from SEQCROW}}}
message is also confusing. Didn't track that down.
The {{{resumed SEQCROW queue}}} is probably because it doesn't distinguish
between starting it the first time and subsequent times.
--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4547#comment:4>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
comment:6 by , 5 years ago
| Component: | Third Party → Tool Shed |
|---|---|
| Owner: | changed from to |
| Reporter: | changed from to |
| Summary: | Spurious? messages from SEQCROW during installation → Duplicate manager initialization |
The duplicate manager initialization is coming from toolshed_utils._install_bundle(). That code can be removed because managers are automatically initialized with their providers in the ProviderManager constructor.
I'm not sure why it resumes the queue (for running QM jobs through the QM input builder tool) when SEQCROW is installed. That's a bug. I only want it to resume the queue if a job was running/pending when ChimeraX was closed or when a new job is started. Of course, if you're just installing it for the first time, there's no jobs in the queue so nothing happens either way. I don't see the "resumed SEQCROW queue" message after the first restart of ChimeraX until I start a new job. The "local job type/file format X from Y supplanted that from Z" are debugging messages from the ProviderManagers that handles file formats for the QM input file builder. I think it only shows up after SEQCROW has just been reinstalled. I'm not sure why, but it tries to add the formats twice. It should not print again after restarting ChimeraX (unless you install another bundle that wants to overwrite those formats for the QM input file builder). I'll probably just remove those; they aren't important. There's a few things in SEQCROW that listen for ui's "ready" trigger (settings, selectors on the select menu and, in the next version, mouse modes and tutorials), so I'll see what I can do about telling people to restart after installing. Tony ________________________________ From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> Sent: Thursday, April 22, 2021 1:22 PM Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Anthony James Schaefer <tony.schaefer@uga.edu> Subject: Re: [ChimeraX] #4547: Spurious? messages from SEQCROW during installation (was: ChimeraX bug report submission) [EXTERNAL SENDER - PROCEED CAUTIOUSLY] #4547: Spurious? messages from SEQCROW during installation ----------------------------------+--------------------------- Reporter: Greg Couch | Owner: Tony Schaefer Type: defect | Status: assigned Priority: normal | Milestone: Component: Third Party | Version: Resolution: | Keywords: Blocked By: | Blocking: Notify when closed: | Platform: all Project: ChimeraX | ----------------------------------+--------------------------- Changes (by Eric Pettersen): * status: new => assigned * cc: Eric Pettersen (added) * component: Unassigned => Third Party * project: => ChimeraX * platform: => all * owner: (none) => Tony Schaefer -- Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4547#comment:1> ChimeraX <http://www.rbvi.ucsf.edu/chimerax/> ChimeraX Issue Tracker