Opened 6 years ago
Closed 6 years ago
#2124 closed defect (fixed)
Bundle's initialize() method doesn't get called on first installation
Reported by: | Tristan Croll | Owned by: | Conrad Huang |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Tool Shed | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
In order to correctly load its libraries for OpenCL and CUDA, OpenMM requires the environment variable OPENMM_PLUGIN_DIR
to be set before it's imported for the first time (the attempt to load its plugins happens when the top-level __init__.py
is run, so this has to happen before anything is imported from OpenMM. After some head-scratching debugging over the weekend I've moved the necessary code to ISOLDE's BundleAPI.initialize()
method and set customInit="true"
in bundle_info.xml
to make this happen on ChimeraX startup.
After looking into a report from Tom about the builds I uploaded last night, it appears that the initialize()
method doesn't get called on first installation of the bundle, so anyone attempting to run ISOLDE immediately after installing will be faced with the message that no OpenCL or CUDA libraries were found.
The upshot here is that for any plugin with a custom init, initialize()
needs to be called on installation or it won't work properly until after ChimeraX is restarted.
Change History (4)
comment:1 by , 6 years ago
Status: | assigned → feedback |
---|
follow-up: 2 comment:2 by , 6 years ago
I uploaded versions compatible with 0.91 two days ago. Will test today, anyway.
follow-up: 3 comment:3 by , 6 years ago
That *seems* to be OK now (I can start ISOLDE without the "no OpenCL or CUDA" warning appearing), but there's a new bug in View preventing me from actually testing if a simulation will start. Will raise a new ticket for that. On 2019-06-28 04:26, ChimeraX wrote:
comment:4 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | feedback → closed |
I've added code to the daily build (0.91) for calling the custom (and manager) initialization functions for newly installed bundles. Unfortunately, I cannot easily test it with ISOLDE due to ChimeraX Core version mismatch. Is there anyway you can build ISOLDE/Clipper bundles for 0.91 and test? Thanks.