Loading too many particles results in Server Disconnected

Hello,

To give some context to my problem, I am using a custom Python plugin that, in short, reads from a file, then transforms the data to numpy, and subsequently converts it to vtk format (vtkPoints) for visualization.

My plugin works, but only for relatively small sizes (I have tested it and it works for up to ~161 million particles, although I must say that it is quite slow).

I was trying to visualize a PointCloud of ~322 million particles, but shortly after loading, I get the error shown in the image (Server Disconnected!), with no further information.

There are a lot of particles, and that is probably the reason considering that it works with smaller amounts, but I don’t know exactly what it is and how to fix it. I have included the Memory inspector for additional information.

I hope I was understood. For additional information that might be useful, I am using Paraview 5.11.0 in a linux client-server environment. I have no rights to install and configure ParaView on the server. If you need more information, please don’t hesitate to ask, such as the code, etc.

Best regards,
Thanks in advance

Hello @enricsosa,

If the treatment on the server is too big, the server will be killed and the client will be notified by this pop up. To be sure this is the issue, do you have some log from the disconnected server itself?

Is it possible to share your paraview config (Help > About > “Copy to clipboard”) ?

Hi @Lucas_Givord, thanks for your response.

How do I get the log from the disconnected server?

Here is my config:

Client Information:
Version: 5.11.0
VTK Version: 9.2.20220823
Qt Version: 5.15.2
vtkIdType size: 64bits
Embedded Python: On
Python Library Path: /home/enricsosa/bsc/ParaView-5.11.0-MPI-Linux-Python3.9-x86_64/lib/python3.9
Python Library Version: 3.9.13 (main, Nov 14 2022, 18:41:25) [GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
Python Numpy Support: Off
Python Matplotlib Support: Off
Python Testing: Off
MPI Enabled: On
ParaView Build ID: superbuild 296d2d1b237965dbf5059263bb6feac90417f250 (!1041)
Disable Registry: Off
*Test Directory: *
*Data Directory: *
SMP Backend: TBB
SMP Max Number of Threads: 8
OpenGL Vendor: Intel Open Source Technology Center
OpenGL Version: 4.6 (Core Profile) Mesa 20.0.8
OpenGL Renderer: Mesa DRI Intel(R) UHD Graphics 620 (KBL GT2)
Accelerated filters overrides available: No

Connection Information:
Remote Connection: Yes
Separate Render Server: No
Reverse Connection: No
Number of Processes: 1
Disable Remote Rendering: Off
IceT: On
Tile Display: Off
vtkIdType size: 64bits
SMP Backend: TBB
SMP Max Number of Threads: 224
Embedded Python: On
Python Library Path: /apps/GPP/PARAVIEW/5.11.0/lib/python3.9
Python Library Version: 3.9.13 (main, Nov 14 2022, 18:41:25) [GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
Python Numpy Support: On
Python Numpy Path: /gpfs/apps/MN5/GPP/PARAVIEW/5.11.0/lib/python3.9/site-packages/numpy
Python Numpy Version: 1.21.1
Python Matplotlib Support: On
Python Matplotlib Path: /gpfs/apps/MN5/GPP/PARAVIEW/5.11.0/lib/python3.9/site-packages/matplotlib
Python Matplotlib Version: 3.2.1
OpenGL Vendor: Mesa/X.org
OpenGL Version: 3.3 (Core Profile) Mesa 21.2.1
OpenGL Renderer: llvmpipe (LLVM 7.0.0, 256 bits)
Headless support: None
Accelerated filters overrides available: No

How do you run the server ?

Hi,
Sorry, now I know where I have the server logs, this is the error message (I should have updated it):

numpy to vtk TIME: 49.910595178604126
^[[0m^[[1m^[[91m
Loguru caught a signal: SIGSEGV
^[[0m^[[0m^[[31mStack trace:
1       0x7fab86404129 [0x7fab86404129]
0       0x7fac88123df0 /lib64/libc.so.6(+0x54df0) [0x7fac88123df0]^[[0m
^[[0m^[[31m( 521.179s) [pvserver        ]                       :0     FATL| Signal: SIGSEGV^[[0m
error: exception occurred: Segmentation fault
srun: error: gs07r2b31: task 0: Exited with exit code 1
srun: Terminating StepId=25729908.6

These are the last lines of the log. The first line of these lines (numpy to vtk TIME[…]) is from a print of my RequestData code from my custom source module. These are the last lines of code of my RequestData:

    # set points
    numPts = vtkpoints.GetNumberOfPoints()
    ptIds = vtk.vtkIdList()
    ptIds.SetNumberOfIds(numPts)
    for a in range(numPts):
        ptIds.SetId(a, a)
    output.SetPoints(vtkpoints)
    output.Allocate(1)
    output.InsertNextCell(vtk.VTK_POLY_VERTEX, ptIds)
    print("numpy to vtk TIME:", time.time() - vtk_time, flush=True) # TIME
    return 1

Thanks in advance.

Does the crash occurs only when you use this custom source ?

I tried using the Point Source module with these parameters (which are similar to those I use) and it crashes:

The complete server log:

Waiting for client…
Connection URL: cs://gs08r2b31:31840
Accepting connection(s): gs08r2b31:31840
Client connected.
^[[0m^[[1m^[[91m
Loguru caught a signal: SIGSEGV
^[[0m^[[0m^[[31mStack trace:
1 0x7fbfc007d129 [0x7fbfc007d129]
0 0x7fc00acb8df0 /lib64/libc.so.6(+0x54df0) [0x7fc00acb8df0]^[[0m
^[[0m^[[31m( 98.205s) [pvserver ] :0 FATL| Signal: SIGSEGV^[[0m
error: exception occurred: Segmentation fault
srun: error: gs08r2b31: task 0: Exited with exit code 1
srun: Terminating StepId=26156300.7

To add additional information, this is the pvserver command that I use to launch the server:

srun pvserver --multi-clients --force-offscreen-rendering --server-port=$port > ~/$log 2>&1

Can you monitor the memory on the server side while you do that ?

That is the htop command on the server side (speed up):

Also, the free command in another execution (also, speed up):

Does it seem good right?

Indeed, not a memory issue, we will need to try that on a large memory computer to check