[Paraview] Segmentation Fault when using the vtkPVDReader
Burlen Loring
bloring at lbl.gov
Fri Oct 24 12:14:42 EDT 2014
Hi Bogdan,
You are writing a stand alone C++ app right? Are you setting up to run
the composite data pipeline as in the following example?
100 vtkCompositeDataPipeline* cexec=vtkCompositeDataPipeline::New();
101 vtkAlgorithm::SetDefaultExecutivePrototype(cexec);
102 cexec->Delete();
Burlen
On 10/23/2014 06:37 PM, Sebastien Jourdain wrote:
> 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 <mailto: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>
> <mailto: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>>
> <mailto: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>>
> <mailto: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> <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
> > >
> > >
> >
> >
>
>
>
>
> _______________________________________________
> Powered by 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/20141024/11a59794/attachment-0001.html>
More information about the ParaView
mailing list