[Paraview-developers] ParaView 3.14.1 crashes when loading a state file with existing data sources in pipeline
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Thu Apr 19 15:38:52 EDT 2012
I'll take a look.
Utkarsh
On Thu, Apr 19, 2012 at 3:36 PM, Cory Quammen <cquammen at cs.unc.edu> wrote:
> Hi all,
>
> In ParaView 3.12, I could define a pipeline and then open a state
> file. The sources and filters defined in the state file would then be
> added to the existing pipeline.
>
> In ParaView 3.14.1, I get a crash when I try to do this. Here are the
> steps to reproduce it:
>
> 1). Run ParaView
> 2). Save a state file (nothing in the pipeline)
> 3). Add a source (I've tried Text source and Sphere source)
> 4). Load the state file in step 2
> 5). Crash
>
> If I load the blank state file with nothing in the pipeline, there is no crash.
>
> I compiled a debug version of ParaView 3.14.1 and ran it through
> valgrind, following the steps above. The valgrind output indicates
> that there are invalid reads of deleted objects
>
> 9941== Invalid read of size 8
> ==19941== at 0x1029FED1: QMetaObject::cast(QObject*) const (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0)
> ==19941== by 0x50BFC2C: pqView* qobject_cast<pqView*>(QObject*)
> (qobject.h:380)
> ==19941== by 0x5A25AD1:
> pqApplicationCore::loadState(vtkPVXMLElement*, pqServer*)
> (pqApplicationCore.cxx:534)
> ==19941== by 0x4C9ABBD: pqLoadStateReaction::loadState(QString
> const&) (pqLoadStateReaction.cxx:79)
> ==19941== by 0x4C9AF08: pqLoadStateReaction::loadState()
> (pqLoadStateReaction.cxx:110)
> ==19941== by 0x4CCE6BE: pqLoadStateReaction::onTriggered()
> (pqLoadStateReaction.h:61)
> ==19941== by 0x4CD0549: pqReaction::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) (moc_pqReaction.cxx:52)
> ==19941== by 0x102B06A5: QMetaObject::activate(QObject*,
> QMetaObject const*, int, void**) (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0)
> ==19941== by 0xECDFF31: QAction::triggered(bool) (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so.4.8.0)
> ==19941== by 0xECE16AA: QAction::activate(QAction::ActionEvent) (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so.4.8.0)
> ==19941== by 0xF15DDA0: ??? (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so.4.8.0)
> ==19941== by 0xF163829: ??? (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so.4.8.0)
> ==19941== Address 0x2a7bfd00 is 0 bytes inside a block of size 80 free'd
> ==19941== at 0x4A0545F: operator delete(void*) (vg_replace_malloc.c:387)
> ==19941== by 0x5ADB311:
> pqTextRepresentation::~pqTextRepresentation()
> (pqTextRepresentation.cxx:51)
> ==19941== by 0x5ABFF7C:
> pqServerManagerModel::onProxyUnRegistered(QString const&, QString
> const&, vtkSMProxy*) (pqServerManagerModel.cxx:452)
> ==19941== by 0x5AF07D5:
> pqServerManagerModel::qt_static_metacall(QObject*, QMetaObject::Call,
> int, void**) (moc_pqServerManagerModel.cxx:158)
> ==19941== by 0x102B06A5: QMetaObject::activate(QObject*,
> QMetaObject const*, int, void**) (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0)
> ==19941== by 0x5AF1D04:
> pqServerManagerObserver::proxyUnRegistered(QString const&, QString
> const&, vtkSMProxy*) (moc_pqServerManagerObserver.cxx:164)
> ==19941== by 0x5AC3A33:
> pqServerManagerObserver::proxyUnRegistered(vtkObject*, unsigned long,
> void*, void*, vtkCommand*) (pqServerManagerObserver.cxx:184)
> ==19941== by 0x5AF192C:
> pqServerManagerObserver::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) (moc_pqServerManagerObserver.cxx:90)
> ==19941== by 0x102B06A5: QMetaObject::activate(QObject*,
> QMetaObject const*, int, void**) (in
> /playpen2/cquammen/dev/packages/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so.4.8.0)
> ==19941== by 0xCE4D51C: vtkQtConnection::EmitExecute(vtkObject*,
> unsigned long, void*, void*, vtkCommand*)
> (moc_vtkQtConnection.cxx:104)
> ==19941== by 0xCE19E52: vtkQtConnection::Execute(vtkObject*,
> unsigned long, void*) (vtkQtConnection.cxx:72)
> ==19941== by 0xCE19DDD: vtkQtConnection::DoCallback(vtkObject*,
> unsigned long, void*, void*) (vtkQtConnection.cxx:62)
>
> It looks like pqApplicationCore::loadState() is attempting to read a
> proxy that has been free'd in
> pqServerManagerModel::onProxyUnRegistered().
>
> Could someone who know more about the proxy management take a look at
> this? We have a branded ParaView application that inserts a text
> source in the pipeline at start up, which means that no one can load
> state files without deleting the text source first.
>
> Thanks,
> Cory
>
> --
> Cory Quammen
> Research Associate
> Department of Computer Science
> The University of North Carolina at Chapel Hill
> _______________________________________________
> Paraview-developers mailing list
> Paraview-developers at paraview.org
> http://public.kitware.com/mailman/listinfo/paraview-developers
More information about the Paraview-developers
mailing list