Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • ParaView ParaView
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,961
    • Issues 1,961
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 97
    • Merge requests 97
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ParaViewParaView
  • ParaViewParaView
  • Issues
  • #20859
Closed
Open
Issue created Jul 28, 2021 by Timothee Chabat@timothee.chabatDeveloper

Redistribute dataset not working with multiple ranks

On ParaView master server always crash when launched using mpiexec -n X and when applying the Redistribute Dataset Filter.

The behavior was still correct in the release of PV 5.9.1.

Step to reproduce :

  • Connect to a pvserver launched with multiple ranks
  • Create a Sphere
  • Create a redistribute dataset filter
  • Apply
  • Crash

ParaView BT is :

43      0x556f1cbdc46e bin/pvserver(+0x246e) [0x556f1cbdc46e]          
42      0x7fb6280ca0b3 __libc_start_main + 243                         
41      0x556f1cbdc9dc bin/pvserver(+0x29dc) [0x556f1cbdc9dc]          
40      0x556f1cbdc8d1 bin/pvserver(+0x28d1) [0x556f1cbdc8d1]          
39      0x7fb625a9cbdc vtkTCPNetworkAccessManager::ProcessEvents(unsigned long) + 44                                                          
38      0x7fb625a9d0d8 vtkTCPNetworkAccessManager::ProcessEventsInternal(unsigned long, bool) + 1274                                          
37      0x7fb625485d30 vtkMultiProcessController::ProcessRMIs(int, int) + 1654                                                                
36      0x7fb625486148 vtkMultiProcessController::ProcessRMI(int, void*, int, int) + 784                                                      
35      0x7fb6264f516e /home/timotheec/Documents/Dev/PARAVIEW/build/bin/../lib/libvtkRemotingServerManager-pv5.9.so.1(+0x1e916e) [0x7fb6264f516e]                                                                    
34      0x7fb6264f6395 vtkPVSessionServer::OnClientServerMessageRMI(void*, int) + 1195                                                        
33      0x7fb6264e4a90 vtkPVSessionBase::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 100                                
32      0x7fb6264e852b vtkPVSessionCore::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 511                                
31      0x7fb6264e876c vtkPVSessionCore::ExecuteStreamInternal(vtkClientServerStream const&, bool) + 226                                      
30      0x7fb625881777 vtkClientServerInterpreter::ProcessStream(vtkClientServerStream const&) + 71                                           
29      0x7fb6258818f4 vtkClientServerInterpreter::ProcessOneMessage(vtkClientServerStream const&, int) + 352                                 
28      0x7fb62588241c vtkClientServerInterpreter::ProcessCommandInvoke(vtkClientServerStream const&, int) + 514                              
27      0x7fb625883e85 vtkClientServerInterpreter::CallCommandFunction(char const*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&) + 711                                         
26      0x7fb626cded7c vtkSISourceProxyCommand(vtkClientServerInterpreter*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&, void*) + 2260                                         
25      0x7fb626539329 vtkSISourceProxy::UpdatePipeline(int, double, bool) + 589                                                              
24      0x7fb62535a237 vtkStreamingDemandDrivenPipeline::Update(int) + 55                                                                     
23      0x7fb62535a3b2 vtkStreamingDemandDrivenPipeline::Update(int, vtkInformationVector*) + 376                                             
22      0x7fb6252992e7 vtkDemandDrivenPipeline::UpdateData(int) + 695  
21      0x7fb625359ffe vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 3272
20      0x7fb625298a74 vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1242         
19      0x7fb625290077 vtkCompositeDataPipeline::ForwardUpstream(vtkInformation*) + 765                                                       
18      0x7fb625359ffe vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 3272
17      0x7fb625298b78 vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1502         
16      0x7fb62528d78e vtkCompositeDataPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1116           
15      0x7fb6252994c8 vtkDemandDrivenPipeline::ExecuteData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 116             
14      0x7fb6252a19ab vtkExecutive::CallAlgorithm(vtkInformation*, int, vtkInformationVector**, vtkInformationVector*) + 149                 
13      0x7fb625296c50 vtkDataObjectAlgorithm::ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 98            
12      0x7fb61ecfd7ba vtkRedistributeDataSetFilter::RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) + 1364       
11      0x7fb61ecfe98e vtkRedistributeDataSetFilter::Redistribute(vtkPartitionedDataSet*, vtkPartitionedDataSet*, std::vector<vtkBoundingBox> const&, long long*) + 986                                              
10      0x7fb61ecff11e vtkRedistributeDataSetFilter::RedistributeDataSet(vtkDataSet*, vtkPartitionedDataSet*, std::vector<vtkBoundingBox> const&) + 244                                                              
9       0x7fb61eb863bf vtkDIYKdTreeUtilities::Exchange(vtkPartitionedDataSet*, vtkMultiProcessController*, std::shared_ptr<vtkdiy2::Assigner>) + 1347                                                                
8       0x7fb61eb8863a /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0xec63a) [0x7fb61eb8863a]       
7       0x7fb61eb89a24 /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0xeda24) [0x7fb61eb89a24]       
6       0x7fb61eb9e49f /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0x10249f) [0x7fb61eb9e49f]
5       0x7fb61eb9c1a6 /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0x1001a6) [0x7fb61eb9c1a6]
4       0x7fb61eb97fb2 /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0xfbfb2) [0x7fb61eb97fb2]
3       0x7fb61eba45a8 /home/timotheec/Documents/Dev/PARAVIEW/build/lib/libvtkFiltersParallelDIY2-pv5.9.so.1(+0x1085a8) [0x7fb61eba45a8]
2       0x7fb6265c8659 void std::string::_M_construct<char*>(char*, char*, std::forward_iterator_tag) + 113
1       0x7fb6265c9fa5 std::iterator_traits<char*>::difference_type std::distance<char*>(char*, char*) + 35
0       0x7fb6280e9210 /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fb6280e9210]

I also tried to replicate using only VTK and the following code also crash (but since I'm unsure of my skills using MPI in VTK I didn't open the issue in VTK) :

vtkNew<vtkMPIController> controller;
controller->Initialize(&argc, &argv);
controller->SetCommunicator(vtkMPICommunicator::GetWorldCommunicator());
vtkMultiProcessController::SetGlobalController(controller);

vtkNew<vtkSphereSource> source;
source->Update();

vtkNew<vtkRedistributeDataSetFilter> rdsf;
rdsf->SetInputConnection(source->GetOutputPort());
rdsf->SetController(controller);
rdsf->Update();
Edited Jul 28, 2021 by Timothee Chabat
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking