Paraview crashes when multiblock hierarchy changes over time
We have some multiblock datasets where there is a hierarchy of blocks at one timestep, and in later timesteps, additional blocks are added to the hierarchy.
This will crash Paraview when a client-server connection is used. When loading the data locally, it does not crash.
This behavior seems to appear starting at Paraview 5.8.1. The latest master branch also crashes. Using 5.8.0 does not crash.
The Piece Distribution strategy also seems to play a role. It will only crash when Piece Distribution is set to Block
. Setting it to Interleave
does not cause a crash.
Here is an example dataset: wavelets.tar.gz. It is composed of two timesteps. The first timestep has one wavelet in one block. The second timestep has two wavelets in two blocks.
To reproduce the crash: load the dataset in a client-server connection. Click on the VCR controls to move to the next timestep. Paraview should crash at that moment.
Here is a stack trace of the error:
Stack trace:
38 0x401679 ./pvserver() [0x401679]
37 0x2b4e8ff1b555 __libc_start_main + 245
36 0x40196a ./pvserver() [0x40196a]
35 0x2b4e89771200 vtkTCPNetworkAccessManager::ProcessEventsInternal(unsigned long, bool) + 544
34 0x2b4e8a861879 vtkMultiProcessController::ProcessRMIs(int, int) + 329
33 0x2b4e8a861fde vtkMultiProcessController::ProcessRMI(int, void*, int, int) + 958
32 0x2b4e88c44d8b vtkPVSessionServer::OnClientServerMessageRMI(void*, int) + 731
31 0x2b4e88c389e0 vtkPVSessionBase::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 48
30 0x2b4e88c3af45 vtkPVSessionCore::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 101
29 0x2b4e88c3d8e7 vtkPVSessionCore::ExecuteStreamInternal(vtkClientServerStream const&, bool) + 167
28 0x2b4e89bd66d9 vtkClientServerInterpreter::ProcessStream(vtkClientServerStream const&) + 41
27 0x2b4e89bd2b43 vtkClientServerInterpreter::ProcessOneMessage(vtkClientServerStream const&, int) + 1923
26 0x2b4e89bd508d vtkClientServerInterpreter::ProcessCommandInvoke(vtkClientServerStream const&, int) + 301
25 0x2b4e89bd6a67 vtkClientServerInterpreter::CallCommandFunction(char const*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&) + 855
24 0x2b4e8728a66c vtkPVRenderViewCommand(vtkClientServerInterpreter*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&, void*) + 22220
23 0x2b4e93ce58ae vtkPVRenderView::Update() + 158
22 0x2b4e93cfe6f5 vtkPVView::Update() + 245
21 0x2b4e93cff47f vtkPVView::CallProcessViewRequest(vtkInformationRequestKey*, vtkInformation*, vtkInformationVector*) + 191
20 0x2b4e93c66114 vtkGeometryRepresentationWithFaces::ProcessViewRequest(vtkInformationRequestKey*, vtkInformation*, vtkInformation*) + 20
19 0x2b4e93c5f06d vtkGeometryRepresentation::ProcessViewRequest(vtkInformationRequestKey*, vtkInformation*, vtkInformation*) + 29
18 0x2b4e93cb399e vtkPVDataRepresentation::ProcessViewRequest(vtkInformationRequestKey*, vtkInformation*, vtkInformation*) + 206
17 0x2b4e8ab52401 vtkStreamingDemandDrivenPipeline::Update(int, vtkInformationVector*) + 225
16 0x2b4e8ab527df vtkStreamingDemandDrivenPipeline::PropagateUpdateExtent(int) + 143
15 0x2b4e8ab51edd vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1741
14 0x2b4e8aaffd3a vtkCompositeDataPipeline::ForwardUpstream(vtkInformation*) + 314
13 0x2b4e8ab51edd vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1741
12 0x2b4e8aaffd3a vtkCompositeDataPipeline::ForwardUpstream(vtkInformation*) + 314
11 0x2b4e8ab51ec9 vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1721
10 0x2b4e8ab0a3fd vtkExecutive::CallAlgorithm(vtkInformation*, int, vtkInformationVector**, vtkInformationVector*) + 61
9 0x2b4e94a192cc vtkFileSeriesReader::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 604
8 0x2b4e94a1b66d vtkFileSeriesReader::RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 173
7 0x2b4e94a1c38e vtkFileSeriesReader::RequestInformationForInput(int, vtkInformation*, vtkInformationVector*) + 190
6 0x2b4e8a384f72 vtkXMLReader::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 210
5 0x2b4e8a36e4ab vtkXMLMultiBlockDataReader::RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 315
4 0x2b4e8a36ea7f vtkXMLMultiBlockDataReader::FillMetaData(vtkCompositeDataSet*, vtkXMLDataElement*, std::string const&, unsigned int&) + 1279
3 0x2b4e8a36ec1e vtkXMLMultiBlockDataReader::FillMetaData(vtkCompositeDataSet*, vtkXMLDataElement*, std::string const&, unsigned int&) + 1694
2 0x2b4e8a36e972 vtkXMLMultiBlockDataReader::FillMetaData(vtkCompositeDataSet*, vtkXMLDataElement*, std::string const&, unsigned int&) + 1010
1 0x2b4e8a34e931 vtkXMLCompositeDataReader::ShouldReadDataSet(unsigned int, unsigned int, unsigned int) + 417
0 0x2b4e8a34ea6a vtkXMLCompositeDataReader::GetPieceAssignmentForBlockStrategy(unsigned int, unsigned int, int) + 42
( 122.007s) [pvserver.0 ] :0 FATL| Signal: SIGFPE