troubleshooting core dumps in Ubuntu 18.04

Hello,

Can you give some help in understanding a core dump while running paraview in a Ubuntu 18.04? I have not experience in understanding core dumps in Ubuntu.

How can I know what is the problem?

I do not know if it is related the paraview was working fine in an Azure VM. Then I created an snapshot of the VM. Then I created a new disc from the snapshot. Finally I created a new Ubuntu VM with more RAM. Do you think this change of VM can be the reason of the segmentation fault.

Find below the console output

3559 Segmentation fault (core dumped) pvpython --force-offscreen-rendering ./paraview-lite/server/pvw-lite.py --data ~/3d_samples --port 8082

Loguru caught a signal: SIGSEGV
Stack trace:
61 0x55606430728a pvpython(+0x228a) [0x55606430728a]
60 0x7f6ea643bb97 __libc_start_main + 231
59 0x556064307b3f pvpython(+0x2b3f) [0x556064307b3f]
58 0x7f6ea3e34304 vtkPythonInterpreter::PyMain(int, char**) + 532
57 0x7f6ea1a0dbe5 Py_Main + 41
56 0x7f6ea1a0d187 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0xf7187) [0x7f6ea1a0d187]
55 0x7f6ea1a005b1 PyRun_SimpleFileExFlags + 911
54 0x7f6ea1a007d4 PyRun_FileExFlags + 157
53 0x7f6ea1b8d072 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x277072) [0x7f6ea1b8d072]
52 0x7f6ea1b8d0dd /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x2770dd) [0x7f6ea1b8d0dd]
51 0x7f6ea1addddb PyEval_EvalCode + 27
50 0x7f6ea1adde1c PyEval_EvalCodeEx + 60
49 0x7f6ea1ade101 _PyEval_EvalCodeWithName + 721
48 0x7f6ea1adff33 _PyEval_EvalFrameDefault + 4371
47 0x7f6ea1a6e4a5 _PyFunction_Vectorcall + 341
46 0x7f6ea1ade101 _PyEval_EvalCodeWithName + 721
45 0x7f6ea1ae331f _PyEval_EvalFrameDefault + 17663
44 0x7f6ea1a6dd04 _PyObject_MakeTpCall + 132
43 0x7f6ea1aab34b /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x19534b) [0x7f6ea1aab34b]
42 0x7f6ea1aad9e9 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x1979e9) [0x7f6ea1aad9e9]
41 0x7f6ea1a6ed22 _PyObject_Call_Prepend + 82
40 0x7f6ea1a6d902 _PyObject_FastCallDict + 322
39 0x7f6ea1ae3570 _PyEval_EvalFrameDefault + 18256
38 0x7f6ea1a6e411 _PyFunction_Vectorcall + 193
37 0x7f6ea1ae3570 _PyEval_EvalFrameDefault + 18256
36 0x7f6ea1a6e411 _PyFunction_Vectorcall + 193
35 0x7f6ea1adf5ab _PyEval_EvalFrameDefault + 1931
34 0x7f6ea1a6e411 _PyFunction_Vectorcall + 193
33 0x7f6ea1ae43de _PyEval_EvalFrameDefault + 21950
32 0x7f6ea1a6dde7 _PyObject_MakeTpCall + 359
31 0x7f6ea1aab34b /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x19534b) [0x7f6ea1aab34b]
30 0x7f6ea1aad9e9 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x1979e9) [0x7f6ea1aad9e9]
29 0x7f6ea1a6ed22 _PyObject_Call_Prepend + 82
28 0x7f6ea1a6da76 _PyObject_FastCallDict + 694
27 0x7f6ea1a6e4a5 _PyFunction_Vectorcall + 341
26 0x7f6ea1ade475 _PyEval_EvalCodeWithName + 1605
25 0x7f6ea1ae3570 _PyEval_EvalFrameDefault + 18256
24 0x7f6ea1b53fa8 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x23dfa8) [0x7f6ea1b53fa8]
23 0x7f6ea1ae3570 _PyEval_EvalFrameDefault + 18256
22 0x7f6ea1a702b1 /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x15a2b1) [0x7f6ea1a702b1]
21 0x7f6ea1a6e4a5 _PyFunction_Vectorcall + 341
20 0x7f6ea1ade101 _PyEval_EvalCodeWithName + 721
19 0x7f6ea1ae4221 _PyEval_EvalFrameDefault + 21505
18 0x7f6ea1a6f0ea PyCFunction_Call + 250
17 0x7f6e6cb5fd34 /home/azureuser/paraview_build/lib/python3.8/site-packages/paraview/modules/vtkRemotingViews.so(+0x1bbd34) [0x7f6e6cb5fd34]
16 0x7f6e9cefeaab vtkSMViewProxy::StillRender() + 347
15 0x7f6ea48a2475 vtkPVSessionBase::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 53
14 0x7f6ea48a353b vtkPVSessionCore::ExecuteStream(unsigned int, vtkClientServerStream const&, bool) + 75
13 0x7f6ea48a3712 vtkPVSessionCore::ExecuteStreamInternal(vtkClientServerStream const&, bool) + 242
12 0x7f6ea3c0070d vtkClientServerInterpreter::ProcessStream(vtkClientServerStream const&) + 29
11 0x7f6ea3c0033e vtkClientServerInterpreter::ProcessOneMessage(vtkClientServerStream const&, int) + 1454
10 0x7f6ea3bfface vtkClientServerInterpreter::ProcessCommandInvoke(vtkClientServerStream const&, int) + 1614
9 0x7f6ea3bff2ee vtkClientServerInterpreter::CallCommandFunction(char const*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&) + 478
8 0x7f6ea520cf78 vtkPVRenderViewCommand(vtkClientServerInterpreter*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&, void*) + 9080
7 0x7f6e9ce5914f vtkPVRenderView::StillRender() + 111
6 0x7f6e9ce64349 vtkPVRenderView::Render(bool, bool) + 1689
5 0x7f6e91b0f3e3 vtkXOpenGLRenderWindow::Render() + 51
4 0x7f6e91a64cd8 vtkOpenGLRenderWindow::Render() + 184
3 0x7f6e8f31a365 vtkRenderWindow::Render() + 213
2 0x7f6e91718d3f vtkXRenderWindowInteractor::Initialize() + 223
1 0x7f6e8a5b215b XSync + 27
0 0x7f6ea6458fd0 /lib/x86_64-linux-gnu/libc.so.6(+0x3efd0) [0x7f6ea6458fd0]
( 0.983s) [paraview ] :0 FATL| Signal: SIGSEGV

vtkXOpenGL... is not the proper rendering window to use inside a cloud environment which does not contain an X (graphical) environment.

You need to use the EGL one, which means that you need to build or use a ParaView build with EGL assuming you have a nvidia GPU with all the drivers properly installed.

If you don’t aim to do any rendering, you can use an OSMesa version which will only rely on your CPU for any rendering (in case you trigger a render).

Thanks Sebastien

Where do I set OSMesa on when building it on Ubuntu? I have not seen that in CCMake

And EGL?

Francesc

Just download them from here

Otherwise you can see how we configure our docker images for either EGL or OSMesa from here

Thanks Sebastien.

It works now. However I have some questions:

  1. I remember having read that you better built from sources in a Ubuntu machine. When do you recommend using a pre-built ubuntu or building it from source code? I guess when you want a particular configuration but for most of the times the Ubuntu pre-built will do?

  2. If I do want to build from source code, how/where OSMesa or EGL is selected?

  3. what are the git source code url for 5.8.1, 5.8.0? I understand https://gitlab.kitware.com/paraview/paraview.git points to active development.

Thanks,

Francesc

  1. Yes, the pre-built it fine unless you need custom MPI library or you want to compile one of your plugin.

  2. See the docker link I provided, that tells you which option to turn on/off in cmake when using ParaView-superbuild which is what we use for generating those pre-built binaries.

  3. Just checkout within that repository the proper tag such as v5.8.0 or else.