v5.11-RC2 crash on switching to 'Surface" representation for large grid
I have a simulation grid of size [21504x448x1120] saved in *.vtr format I am loading it with 4 MPI tasks, and 32 threads available per task. I have plenty of memory (512 GB) and 4 GPUs (A100 with 96 GB each)
my TBB is /opt/intel/oneapi/tbb/2021.2.0
Since the X dimension is much larger, the default UPDATE_SPLIT_MODE of the ExtentTranslator would split the data along the X direction. This results in very poor I/O performance. So I am overriding the default split mode to use Z_SLAB_MODE outInfo.Set(vtk.vtkExtentTranslator.UPDATE_SPLIT_MODE(), vtk.vtkExtentTranslator.Z_SLAB_MODE)
I have found out that I can load/create a grid of size up to [17058,448,1120] and this will work just fine. If I go over to [17059,448,1120], it will crash. The crash is here for my first process (0 out of 4):
Thread 1 "pvserver" received signal SIGTERM, Terminated.
0x00001489bc391da3 in tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<long long>, vtk::detail::smp::FuncCall<vtk::detail::smp::UnaryTransformCall<int*, int*, vtk::detail::smp::FillFunctor<int> > >, tbb::detail::d1::auto_partitioner const>::execute(tbb::detail::d1::execution_data&) () from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
(gdb) where
#0 0x00001489bc391da3 in tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<long long>, vtk::detail::smp::FuncCall<vtk::detail::smp::UnaryTransformCall<int*, int*, vtk::detail::smp::FillFunctor<int> > >, tbb::detail::d1::auto_partitioner const>::execute(tbb::detail::d1::execution_data&) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#1 0x00001489e1753d33 in tbb::detail::r1::task_dispatcher::local_wait_for_all<false, tbb::detail::r1::external_waiter> (this=<optimized out>, t=0x1489a2317c00, waiter=...)
at /localdisk/ci/builds/YKkZxBPD/0/DeveloperProducts/Runtimes/Threading/onetbb/onetbb_source_code/src/tbb/task_dispatcher.h:315
#2 tbb::detail::r1::task_dispatcher::local_wait_for_all<tbb::detail::r1::external_waiter> (this=<optimized out>, t=<optimized out>, waiter=...)
at /localdisk/ci/builds/YKkZxBPD/0/DeveloperProducts/Runtimes/Threading/onetbb/onetbb_source_code/src/tbb/task_dispatcher.h:456
#3 tbb::detail::r1::task_dispatcher::execute_and_wait (t=0xff17fc, wait_ctx=..., w_ctx=...)
at /localdisk/ci/builds/YKkZxBPD/0/DeveloperProducts/Runtimes/Threading/onetbb/onetbb_source_code/src/tbb/task_dispatcher.cpp:168
#4 0x00001489bc38f387 in void vtk::detail::smp::ExecuteFunctorTBB<vtk::detail::smp::UnaryTransformCall<int*, int*, vtk::detail::smp::FillFunctor<int> > >(void*, long long, long long, long long) () from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#5 0x00001489e1efca60 in vtk::detail::smp::vtkSMPToolsImplForTBB(long long, long long, long long, void (*)(void*, long long, long long, long long), void*) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkCommonCore-pv5.11.so.1
#6 0x00001489bc39097d in void vtk::detail::smp::vtkSMPToolsImpl<(vtk::detail::smp::BackendType)2>::For<vtk::detail::smp::UnaryTransformCall<int*, int*, vtk::detail::smp::FillFunctor<int> > >(long long, long long, long long, vtk::detail::smp::UnaryTransformCall<int*, int*, vtk::detail::smp::FillFunctor<int> >&) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#7 0x00001489bc358e18 in (anonymous namespace)::ExtractCellBoundaries<int>::CreatePointMap(long long) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#8 0x00001489bc38b4d1 in int (anonymous namespace)::ExecuteStructured<int>(vtkGeometryFilter*, vtkDataSet*, vtkPolyData*, int*, vtkExcludedFaces<int>*, bool*) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#9 0x00001489bc38bd88 in vtkGeometryFilter::StructuredExecute(vtkDataSet*, vtkPolyData*, int*, vtkPolyData*, bool*) ()
from /scratch/e1000/jfavre/ParaView/ParaView-v5.11.0-RC2Build-cpeGNU-EGL/lib64/libvtkFiltersGeometry-pv5.11.so.1
#10 0x00001489dca58b33 in vtkPVGeometryFilter::ImageDataExecute(vtkImageData*, vtkPolyData*, int, int, int const*) ()
I am including a reproducer based on a simple ProgrammableSource(). The reproducer uses ImageData instead of RectilinearGrid, but it is the same crash happening. pvImageDataCreator.py