[Paraview-developers] Resolve (paraview) dependencies of plugin

hermann.detz at gmail.com hermann.detz at gmail.com
Thu Mar 1 09:21:38 EST 2018


I started with a version that worked for an older Paraview Version and
modified it to my needs. I also split the source code in multiple files
and added them within the SOURCES line.

INCLUDE(${PARAVIEW_USE_FILE})
 ADD_PARAVIEW_PLUGIN(PluginName "2.0"
   SERVER_MANAGER_XML PluginName.xml
   SERVER_MANAGER_SOURCES PluginReader.cxx
   SOURCES SourceA.cxx SourceB.cxx
   REQUIRED_ON_SERVER)

This is the only GetXMLs call I found:

void PluginName_Plugin::GetXMLs(std::vector<std::string> &xmls)
{
PushBack(xmls, PluginNamePluginNameInterfaces);

(void)xmls;
}

Here is a stripped version of the XML file (Sorry for camouflaging it):
 
<ServerManagerConfiguration>
	<ProxyGroup name="sources">
		
		<SourceProxy class="PluginName" name="PluginName" >
			
			<Documentation
				short_help= "Read ..."
				long_help = "Read ...">
                    Some text
    			</Documentation>
			 
			<StringVectorProperty 
				number_of_elements="1"
				animateable="0"
				name="FileName" 
				command="SetFileName">
					<FileListDomain name="files" />
					<Documentation>
						Filename for plugin
        				</Documentation>
			</StringVectorProperty>
			
                        
                        <Hints>
                            <ReaderFactory extensions="abc xyz"
                            file_description="some files (Plugin)" />
                        </Hints>
                        
		</SourceProxy>
		
	</ProxyGroup>	
 </ServerManagerConfiguration>
 


The only thing that looks suspicious to me is that in the argument of
the PushBack call PluginName appears concatenated twice. But like I
said, it's compiling fine and working on the development PC, so I guess
the code can't be too wrong. Sounds more like linking issues to me.

Hermann

On Thu, 2018-03-01 at 09:03 -0500, Ben Boeckel wrote:
> On Thu, Mar 01, 2018 at 14:43:49 +0100, hermann.detz at gmail.com wrote:
> > Thread 1 "paraview" received signal SIGSEGV, Segmentation fault.
> > __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:62
> > 62	../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file
> > or
> > directory.
> > (gdb) bt
> > #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-
> > avx2.S:62
> > #1  0x00007fffe6349e2c in vtkXMLParser::ParseBuffer(char const*) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkIOXMLParser-pv5.4.so.1
> > #2  0x00007fffe634ad1d in vtkXMLParser::ParseXML() ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkIOXMLParser-pv5.4.so.1
> > #3  0x00007fffe634a23a in vtkXMLParser::Parse() ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkIOXMLParser-pv5.4.so.1
> > #4  0x00007fffe6349b48 in vtkXMLParser::Parse(char const*) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkIOXMLParser-pv5.4.so.1
> > #5  0x00007ffff38f0b9a in
> > vtkSIProxyDefinitionManager::LoadConfigurationXMLFromString(char
> > const*, bool) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkPVServerImplementationCore-pv5.4.so.1
> > #6  0x00007ffff38f0cd2 in
> > vtkSIProxyDefinitionManager::HandlePlugin(vtkPVPlugin*) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkPVServerImplementationCore-pv5.4.so.1
> > #7  0x00007ffff38f3299 in
> > vtkObject::vtkClassMemberCallback<vtkSIProxyDefinitionManager>::ope
> > rato
> > r()(vtkObject*, unsigned long, void*) ()
> > ---Type <return> to continue, or q <return> to quit---
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkPVServerImplementationCore-pv5.4.so.1
> > #8  0x00007fffe1bfe6ac in vtkSubjectHelper::InvokeEvent(unsigned
> > long,
> > void*, vtkObject*) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> > 5.4/libvtkCommonCore-pv5.4.so.1
> > #9  0x00007ffff361b1f5 in
> > vtkPVPluginTracker::RegisterPlugin(vtkPVPlugin*) ()
> >    from /ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/paraview-
> 
> While not in your code, it is caused by it. From here, it appears as
> though ParaView is loading your plugin and trying to access some
> server
> manager XML content. That seems to be either not provided or is
> `NULL`.
> ParaView could probably be more robust against it, but this still
> seems
> like a plugin error.
> 
> > It does not seem to come even to my custom code.
> 
> Could you provide your `add_paraview_plugin` call for the plugin? It
> appears as though `GetXMLs` should be generated, so if you could find
> that in the build tree and provide it, that'd be useful as well.
> 
> --Ben


More information about the Paraview-developers mailing list