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: 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.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 pett, 5 years ago

Cc: pett added
Component: UnassignedThird Party
Owner: set to Tony Schaefer
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSpurious? messages from SEQCROW during installation

in reply to:  2 ; comment:2 by Tony Schaefer, 5 years ago

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

comment:3 by pett, 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 Greg Couch, 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.

in reply to:  5 ; comment:5 by Tony Schaefer, 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 pett, 5 years ago

Component: Third PartyTool Shed
Owner: changed from Tony Schaefer to Greg Couch
Reporter: changed from Greg Couch to Tony Schaefer
Summary: Spurious? messages from SEQCROW during installationDuplicate 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.

Note: See TracTickets for help on using tickets.