Plugin Auto-Loaded Twice (Maybe)

I’m using the PV_PLUGIN_CONFIG_FILE environment variable to autoload a Python-based plugin in a custom Linux build of ParaView.

Doing so produces two identical entries in the Plugin Manager.
Not sure if it’s actually being loaded twice or if it’s just a GUI issue.
When I remove one of the entries they both disappear.

It doesn’t seem to affect behavior at all though. Plugin performs as expected.

I confirmed this doesn’t happen with the released Linux binaries.
Any idea how this might be happening in my build?

What happens if you remove your ParaView settings file ?

The JSON-formatted one? I actually don’t have one for my server build to remove, and I’m unable to locate one for the system (I’ll have to ask our system admin).

I was hoping this would be a “hey someone actually had this weird thing happen before!” kind of situation.
Just seems like a tiny graphical bug, doesn’t seem to hurt anything.

It just personally annoys me so I’m sure I’ll play around more and If I find something more concrete that affects the behavior I’ll update.

This issue kinda rings a bell, but I’m not sure.

It would be nice to identify it more clearly.

Can you share a screenshot of the before/after loading the plugin ?

Also try setting the environment variable PARAVIEW_LOG_PLUGIN_VERBOSITY to INFO and run ParaView with -l=[some path]/plugin.log command line argument. This will generate a log file which tells which plugins are being loaded. That may shed some more light on this.

I did some more testing and it does happen in the released binaries as well, but only on the remote side through pvserver.

Plugin file:

<?xml version="1.0"?>
  <Plugins>
    <Plugin name="VelodyneLagrangianXDMFReader" filename="/some/path/to/VelodyneLagReader_latest.py"/>
</Plugins>

where “name” in the xml matches “paraview_plugin_name” global variable in the Python script


Before the plugin has ever been used
Paraview5.8.0.ini:

[PluginsList]
Connection1%3A\installs\paraview\5.8.0\bin\paraview="<?xml version=\"1.0\" ?>\n<Plugins>\n [a bunch of standard plugins]</Plugins>\n"

Plugin Manager:

Loading with PV_PLUGIN_CONFIG_FILE set
Paraview5.8.0.ini:

[PluginsList]
Connection1%3A\installs\paraview\5.8.0\bin\paraview="<?xml version=\"1.0\" ?>\n<Plugins>\n <Plugin name=\"VelodyneLagrangianXDMFReader\" filename=\"/some/path/to/VelodyneLagReader_latest.py\" auto_load=\"0\" />\n <Plugin name=\"VelodyneLagrangianXDMFReader\" filename=\"/some/path/to/VelodyneLagReader_latest.py\" auto_load=\"0\" />\n [a bunch of standard plugins]</Plugins>\n"

Plugin Manager:


Notice how the plugin is listed twice in the .ini file as well as the plugin manager dialog


Then loading with PV_PLUGIN_CONFIG_FILE unset
Paraview5.8.0.ini:

[PluginsList]
Connection1%3A\installs\paraview\5.8.0\bin\paraview="<?xml version=\"1.0\" ?>\n<Plugins>\n <Plugin name=\"VelodyneLagrangianXDMFReader\" filename=\"/some/path/to/VelodyneLagReader_latest.py\" auto_load=\"0\" />\n [a bunch of standard plugins]</Plugins>\n"

Plugin Manager:

Notice how the file is listed only once in each location.
(The name updates to “VelodyneLagrangianXDMFReader” once loaded)



And the relative bits from the log file (when PV_PLUGIN_CONFIG_FILE is set):

(   0.031s) [pvserver        ]  vtkPVPluginLoader.cxx:342   INFO| Loading plugins in Path: /opt/Software/paraview/5.8.0_server/bin/plugins
(   0.031s) [pvserver        ]  vtkPVPluginLoader.cxx:347   INFO| Invalid directory: /opt/Software/paraview/5.8.0_server/bin/plugins
(   0.031s) [pvserver        ]  vtkPVPluginLoader.cxx:322   INFO| Loading Plugins from standard PV_PLUGIN_CONFIG_FILE: /home/shelf1/Software/paraview/scripts/python_plugins.xml
(   0.032s) [pvserver        ] vtkPVPluginTracker.cxx:358   INFO| Loading plugin configuration xml `/home/shelf1/Software/paraview/scripts/python_plugins.xml`.
(   0.032s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `VelodyneLagrangianXDMFReader`
(   0.032s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/corvid_readers/velLagrangian/VelodyneLagReader_latest.py`
(   0.032s) [pvserver        ]  vtkPVPluginLoader.cxx:244   INFO| PV_PLUGIN_PATH: /opt/Software/paraview/scripts/plugins
(   0.032s) [pvserver        ]  vtkPVPluginLoader.cxx:270   INFO| appDir: /opt/Software/paraview/5.8.0_server/bin/plugins
(   0.032s) [pvserver        ]  vtkPVPluginLoader.cxx:244   INFO| PV_PLUGIN_PATH: /opt/Software/paraview/scripts/plugins
(   0.032s) [pvserver        ]  vtkPVPluginLoader.cxx:270   INFO| appDir: /opt/Software/paraview/5.8.0_server/bin/plugins
(   0.032s) [pvserver        ]  vtkPVPluginLoader.cxx:446   INFO| Attempting to load: /opt/Software/paraview/corvid_readers/velLagrangian/VelodyneLagReader_latest.py
(   1.553s) [pvserver        ]  vtkPVPluginLoader.cxx:244   INFO| PV_PLUGIN_PATH: /opt/Software/paraview/scripts/plugins
(   1.553s) [pvserver        ]  vtkPVPluginLoader.cxx:270   INFO| appDir: /opt/Software/paraview/5.8.0_server/bin/plugins
(   1.553s) [pvserver        ]        vtkPVPlugin.cxx:62    INFO| Import status: success 
----------------------------------------------------------
Importing plugin: **VelodyneLagrangianXDMFReader**
  name: VelodyneLagrangianXDMFReader
  version: 1.01
  filename: /opt/Software/paraview/corvid_readers/velLagrangian/VelodyneLagReader_latest.py
  required-on-server: 1
  required-on-client: 0
  has-eula: 0

(   1.554s) [pvserver        ] vtkPVPluginTracker.cxx:358   INFO| Loading plugin configuration xml `/opt/Software/paraview/5.8.0_server/bin/../lib64/paraview-5.8/plugins/paraview.plugins.xml`.
(   1.554s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `AcceleratedAlgorithms`
(   1.554s) [pvserver        ] vtkPVPluginTracker.cxx:105   INFO| { looking for plugin 'AcceleratedAlgorithms'
(   1.554s) [pvserver        ]vtkResourceFileLocator.:61    INFO| .   { looking for 'AcceleratedAlgorithms.so'
(   1.555s) [pvserver        ]vtkResourceFileLocator.:74    INFO| .   .   trying file /opt/Software/paraview/5.8.0_server/bin/../lib64/paraview-5.8/plugins/AcceleratedAlgorithms/AcceleratedAlgorithms.so -- success!
(   1.555s) [pvserver        ]vtkResourceFileLocator.:61    INFO| .   } 0.000 s: looking for 'AcceleratedAlgorithms.so'

...

(  12.741s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `spanwise_integration`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/scripts/plugins/spanwise_integration.xml`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `VelodyneLagrangianXDMFReader`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/corvid_readers/velLagrangian/VelodyneLagReader_latest.py`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `VelodyneLagrangianXDMFReader`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/corvid_readers/velLagrangian/VelodyneLagReader_latest.py`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `AcceleratedAlgorithms`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/5.8.0_server/bin/../lib64/paraview-5.8/plugins/AcceleratedAlgorithms/AcceleratedAlgorithms.so`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `AnalyzeNIfTIReaderWriter`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:464   INFO| found `/opt/Software/paraview/5.8.0_server/bin/../lib64/paraview-5.8/plugins/AnalyzeNIfTIReaderWriter/AnalyzeNIfTIReaderWriter.so`
(  12.742s) [pvserver        ] vtkPVPluginTracker.cxx:414   INFO| Trying to locate plugin with name `ArrowGlyph`

...

Note how the file appears twice here as well, but it seems that it’s only actually loaded once.

That indeed looks like a graphical only bug. Worth fixing at some point.