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?
mwestphal
(Mathieu Westphal (Kitware))
July 20, 2020, 8:43am
2
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.
mwestphal
(Mathieu Westphal (Kitware))
July 21, 2020, 6:50am
5
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.
mwestphal
(Mathieu Westphal (Kitware))
July 22, 2020, 7:40am
8
That indeed looks like a graphical only bug. Worth fixing at some point.