[Paraview] Segmentation Fault when using the vtkPVDReader

Sebastien Jourdain sebastien.jourdain at kitware.com
Thu Oct 23 21:37:09 EDT 2014


Thanks Bogdan,

that's not helping me but someone else might have some idea.

Seb

On Thu, Oct 23, 2014 at 12:19 PM, Bogdan Daqui Herrera <bdaqui at simscale.de>
wrote:

> Certainly. I should mention, I am using a pre-compiled version of Paraview
> 4.1 bundled with Salome (Ubuntu package).
>
> Here it is (using pReader->SetForceOutputTypeToMultiBlock(1)):
> ERROR: In
> /misc/dn47/SALOME/PRODUCTS/7x/opt/Ubuntu.13.10.64/7.4.0/tmp/ParaView-4.1.0_SRC/ParaViewCore/VTKExtensions/Default/vtkXMLCollectionReader.cxx,
> line 316
> vtkPVDReader (0x6559e0): Error creating "vtkXMLMultiBlockDataReader" using
> vtkPVInstantiator.
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff65c4270 in vtkXMLCollectionReader::ReadXMLDataImpl() ()
>    from
> /opt/salomeUbuntu_740/ParaView-4.1.0/lib/paraview-4.1/libvtkPVVTKExtensionsDefault-pv4.1.so.1
> #0  0x00007ffff65c4270 in vtkXMLCollectionReader::ReadXMLDataImpl() ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkPVVTKExtensionsDefault-pv4.1.so.1
> #1  0x00007ffff68cc128 in vtkXMLReader::RequestData(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) () from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkIOXML-pv4.1.so.1
> #2  0x00007ffff68cd35d in vtkXMLReader::ProcessRequest(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) () from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkIOXML-pv4.1.so.1
> #3  0x00007ffff7b97fd0 in vtkExecutive::CallAlgorithm(vtkInformation*,
> int, vtkInformationVector**, vtkInformationVector*) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #4  0x00007ffff7b93447 in
> vtkDemandDrivenPipeline::ExecuteData(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #5  0x00007ffff7b91181 in
> vtkCompositeDataPipeline::ExecuteData(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #6  0x00007ffff7b95bb1 in
> vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #7  0x00007ffff7ba8c21 in
> vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*,
> vtkInformationVector**, vtkInformationVector*) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #8  0x00007ffff7b9486d in vtkDemandDrivenPipeline::UpdateData(int) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #9  0x00007ffff7ba9765 in vtkStreamingDemandDrivenPipeline::Update(int) ()
>    from
> /opt/salome_740/ParaView-4.1.0/lib/paraview-4.1/libvtkCommonExecutionModel-pv4.1.so.1
> #10 0x0000000000414fbf in testing::TestingIO::read (this=0x652b30,
> fileName=..., pMultiBlockDataSet=...)
>     at /home/.../someProject/src/testing.cpp:85
>
>
> Please let me know if you need something additional
> On 10/23/2014 07:51 PM, Sebastien Jourdain wrote:
> > If you provide the stack trace, that may be helpful.
> >
> > Seb
> >
> > On Thu, Oct 23, 2014 at 10:36 AM, Bogdan Daqui Herrera <
> bdaqui at simscale.de <mailto:bdaqui at simscale.de>> wrote:
> >
> >     Hi Seb,
> >
> >     Thanks for the quick reply. Yes the project is managed with CMake. I
> have not however been able to find the relevant posts by Marcus (in the
> users list). Is
> >     that in the users or developers mailing list?
> >
> >     It does sound like it could be a problem with some initialization,
> as you can see below.
> >
> >     One short update, it looks like setting ForceMultiBlockDataSet
> Output with:
> >     pReader->SetForceOutputTypeToMultiBlock(1);
> >     leads to the segmentation fault at Update() (The deepcopy is never
> reached). With or without setting the previous line, the error
> >     vtkPVDReader (0x1cb49e0): Error creating
> "vtkXMLMultiBlockDataReader" using vtkPVInstantiator.
> >
> >     The code looks like this now:
> >             vtkSmartPointer < vtkPVDReader > pReader = vtkSmartPointer <
> vtkPVDReader >::New();
> >             pReader->SetFileName("/some/file.pvd");
> >             pReader->Update(); (where the error is triggered)
> >
> >     Kind Regards,
> >     Bogdan
> >
> >     On 10/23/2014 04:47 PM, Sebastien Jourdain wrote:
> >     > Hi Bogdan,
> >     >
> >     > here are some issue in your code:
> >     >
> >     > vtkSmartPointer <vtkPVDReader> pReader = vtkPVDReader::New(); //
> <== Memory LEAK
> >     > // Should be either
> >     > // vtkNew<vtkPVDReader> pReader;
> >     > // vtkSmartPointer<vtkPVDReader> pReader =
> vtkSmartPointer<vtkPVDReader>::New()
> >     >
> >     > Then here on a "NULL" object you try to call a method.
> >     >
> >     > vtkMultiBlockDataSet*
> pMultiBlockDataSet->DeepCopy(vtkMultiBlockDataSet::SafeDownCast(pReader->GetOutputDataObject(0)));
> >     >
> >     > Should be something like that:
> >     >
> >     > vtkNew< vtkMultiBlockDataSet > pMultiBlockDataSet;
> >     >
> pMultiBlockDataSet->DeepCopy(vtkMultiBlockDataSet::SafeDownCast(pReader->GetOutputDataObject(0)));
> >     >
> >     > Then you might have some other issue where pReader output being
> empty/null, but for that I don't know.
> >     >
> >     > Are you managing your project with CMake? Did you include the
> necessary file with the proper dependency declaration. This seems to be
> related to the factory not
> >     > being properly initialized. You can search the mailing list,
> Marcus did answer several questions about that.
> >     >
> >     > Seb
> >     >
> >     >
> >     >
> >     > On Thu, Oct 23, 2014 at 7:26 AM, Bogdan Daqui Herrera <
> bdaqui at simscale.de <mailto:bdaqui at simscale.de> <mailto:bdaqui at simscale.de
> >     <mailto:bdaqui at simscale.de>>> wrote:
> >     >
> >     >     Hello all,
> >     >
> >     >     I am attempting to write some code in c++ which uses the
> vtkPVDReader from the paraview library to read a series of vtm files.
> However I am
> >     encountering some
> >     >     problems and I am not sure whether there is something I am
> missing or whether this could be a bug.
> >     >
> >     >     I am trying to use the reader in the following manner:
> >     >     My Code:
> >     >             vtkSmartPointer <vtkPVDReader> pReader =
> vtkPVDReader::New();
> >     >             pReader->SetForceOutputTypeToMultiBlock(1);
> >     >             pReader->SetFileName("/some/fileName.pvd");
> >     >             pReader->Update();
> >     >             vtkMultiBlockDataSet*
> pMultiBlockDataSet->DeepCopy(vtkMultiBlockDataSet::SafeDownCast(pReader->GetOutputDataObject(0)));
> >     >
> >     >     Error:
> >     >             The error occurs at Update() with the following result:
> >     >             ERROR: In
> /misc/dn47/SALOME/PRODUCTS/7x/opt/Ubuntu.13.10.64/7.4.0/tmp/ParaView-4.1.0_SRC/ParaViewCore/VTKExtensions/Default
> >     >             /vtkXMLCollectionReader.cxx, line 316
> >     >             vtkPVDReader (0x224d9e0): Error creating
> "vtkXMLMultiBlockDataReader" using vtkPVInstantiator.
> >     >             Segmentation fault
> >     >
> >     >     Possible error Source
> >     >     The code concerning line 316 from vtkXMLCollectionReader.cxx
> is:
> >     >
> >     >           // Use the instantiator to create the reader.
> >     >           vtkObject* o = vtkPVInstantiator::CreateInstance(rname);
> >     >           vtkXMLReader* reader = vtkXMLReader::SafeDownCast(o);
> >     >           this->Internal->Readers[index] = reader;
> >     >           if(reader)
> >     >             {
> >     >             reader->Delete();
> >     >             }
> >     >           else
> >     >             {
> >     >             // The class was not registered with the instantiator.
> >     >             vtkErrorMacro("Error creating \"" << rname
> >     >                           << "\" using vtkPVInstantiator.");
> >     >             if(o)
> >     >               {
> >     >               o->Delete();
> >     >               }
> >     >             }
> >     >           }
> >     >
> >     >     I have isolated the following lines and tested them
> independently:
> >     >           vtkObject* o = vtkPVInstantiator::CreateInstance(rname);
> >     >           vtkXMLReader* reader = vtkXMLReader::SafeDownCast(o);
> >     >
> >     >     The pointer "vtkObject* o" is NULL regardless of the class
> name I pass to instantiate, and I can imagine something like that happening
> in the library,
> >     too and
> >     >     causing the segmentation fault, when calling a SafeDownCast(o)
> (which is NULL).
> >     >
> >     >
> >     >     Any suggestions on how to deal with this problem or if you
> would be so kind to point me to an example for an alternative solution
> (Could be
> >     vtkFileSeriesReader,
> >     >     but this fails, as well in my case) would be appreciated.
> >     >
> >     >     Kind Regards,
> >     >     Bogdan
> >     >
> >     >     P.S.: Using the PVDReader from python code works flawlessly,
> which is also quite confusing, as to why it would fail in the C++ code.
> >     >
> >     >     --
> >     >     Bogdan Daqui
> >     >     Software Development
> >     >
> >     >     SimScale GmbH
> >     >     Lichtenbergstraße 8
> >     >     85748 Garching bei München
> >     >
> >     >     Phone: +49 (0)89 3398 4078
> >     >     Email: bdaqui at simscale.de <mailto:bdaqui at simscale.de> <mailto:
> bdaqui at simscale.de <mailto:bdaqui at simscale.de>>
> >     >
> >     >     Amtsgericht München, HRB 201813
> >     >     Geschäftsführer: Vincenz Dölle & David Heiny
> >     >
> >     >     http://www.simscale.de
> >     >     _______________________________________________
> >     >     Powered by www.kitware.com <http://www.kitware.com> <
> http://www.kitware.com>
> >     >
> >     >     Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> >     >
> >     >     Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
> >     >
> >     >     Follow this link to subscribe/unsubscribe:
> >     >     http://public.kitware.com/mailman/listinfo/paraview
> >     >
> >     >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20141023/0f166bef/attachment-0001.html>


More information about the ParaView mailing list