[Paraview] Crash using openmpi with more than 4 processes

Bart Janssens bart.janssens at rma.ac.be
Fri Feb 5 10:32:47 EST 2010


On Thursday 04 February 2010 09:33:24 pm you wrote:
> What about Valgrind? Any chance you can start one of the processes such
> that you can run it in Valgrind?
> 

I ran things in valgrind, but this showed exactly the same crash. I have 
recompiled mesa with TLS, so the PTHREADS block in the ASM code mentioned 
previously is ignored, and now I get a little further (see attached GDB 
trace). The problem appears to be glGetString(GL_VERSION) returning null.

I added extra debug comments in vtkOpenGLExtensionManager.cxx, starting at 
line 496:

--------------
  if(version)
  {
    vtkWarningMacro(<< "GL Version: " << version);
  }
  else
  {
    vtkWarningMacro("GL version was null, IsCurrent is: " << this-
>RenderWindow->IsCurrent());
  }
----------------

The output of this confirms that version is null when running on 8 processes, 
while RenderWindow->IsCurrent() is shown to be true (1).
When running on 4 processes, on the other hand, everything still works and no 
text is generated at all! I would expect to at least see the contents of 
'version' being printed, in that case? Is all this code somehow only becoming 
active when running many processes?

I also tried aborting the extension manager in the same way as when there are 
no extensions. This avoids the crash but shows only a black screen.

I think the error itself is related to the GL context being messed up somehow, 
even though RenderWindow->IsCurrent() appears to think it is OK. Is anyone 
using OSMesa on many processes? If so, could you please share the exact 
version info and configuration options?

Finally, I also tested using on-screen rendering. This works fine, I tested up 
to 16 processes on the head node alone (not wanting to configure the whole 
cluster with X yet). Unfortunately, rendering became slower and slower as I 
increased the number of processes. Is launching 8 on-screen rendering 
processes on the same node futile, even if there are 8 CPU cores? Would OSMesa 
perform any better in this use case?

Cheers,

Bart
-------------- next part --------------
Program received signal SIGSEGV, Segmentation fault.
0x0000003db6a7caa3 in rawmemchr () from /lib64/libc.so.6
(gdb) bt
#0  0x0000003db6a7caa3 in rawmemchr () from /lib64/libc.so.6
#1  0x0000003db6a6f28a in _IO_str_init_static_internal () from /lib64/libc.so.6
#2  0x0000003db6a63c05 in vsscanf () from /lib64/libc.so.6
#3  0x0000003db6a5ef68 in sscanf () from /lib64/libc.so.6
#4  0x00002b5833731b90 in vtkOpenGLExtensionManager::ReadOpenGLExtensions (this=0x64f2470)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkOpenGLExtensionManager.cxx:498
#5  0x00002b5833732d25 in vtkOpenGLExtensionManager::Update (this=0x64f2470)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkOpenGLExtensionManager.cxx:140
#6  0x00002b58337329d0 in vtkOpenGLExtensionManager::ExtensionSupported (this=0x64f2470,
    name=0x2b58337f85e7 "GL_VERSION_1_4")
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkOpenGLExtensionManager.cxx:147
#7  0x00002b583375c15b in vtkOpenGLRenderWindow::OpenGLInit (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkOpenGLRenderWindow.cxx:258
#8  0x00002b58337b8937 in vtkXOpenGLRenderWindow::CreateOffScreenWindow (this=0x5e582c0, width=1098, height=786)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:952
#9  0x00002b58337b8a3b in vtkXOpenGLRenderWindow::Initialize (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:1067
#10 0x00002b58337b2d32 in vtkXOpenGLRenderWindow::Start (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:1186
#11 0x00002b5833687154 in vtkRenderWindow::DoStereoRender (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkRenderWindow.cxx:688
#12 0x00002b5833687841 in vtkRenderWindow::DoFDRender (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkRenderWindow.cxx:677
#13 0x00002b583368801d in vtkRenderWindow::DoAARender (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkRenderWindow.cxx:564
#14 0x00002b583368884f in vtkRenderWindow::Render (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkRenderWindow.cxx:377
#15 0x00002b58337b3f4a in vtkXOpenGLRenderWindow::Render (this=0x5e582c0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:1856
#16 0x00002b58323bff3a in vtkParallelRenderManager::RenderRMI (this=0x5e0c0d0)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Parallel/vtkParallelRenderManager.cxx:757
#17 0x00002b58286011b2 in vtkPVClientServerRenderManager::RenderRMI (this=0x5e0c0d0)
    at /home/bjanssens/src/paraview/ParaView3/Servers/Filters/vtkPVClientServerRenderManager.h:55
#18 0x00002b58285ff440 in RenderRMI (arg=0x5e0c0d0)
    at /home/bjanssens/src/paraview/ParaView3/Servers/Filters/vtkPVClientServerRenderManager.cxx:57
#19 0x00002b5832314658 in vtkMultiProcessController::ProcessRMI (this=0x5dfcb80, remoteProcessId=1, arg=0x0, argLength=0,
    rmiTag=34532) at /home/bjanssens/src/paraview/ParaView3/VTK/Parallel/vtkMultiProcessController.cxx:592
#20 0x00002b5832315278 in vtkMultiProcessController::ProcessRMIs (this=0x5dfcb80, reportErrors=0, dont_loop=1)
    at /home/bjanssens/src/paraview/ParaView3/VTK/Parallel/vtkMultiProcessController.cxx:545
#21 0x00002b58280ac576 in vtkRemoteConnection::ProcessCommunication (this=0x5dfc7a0)
    at /home/bjanssens/src/paraview/ParaView3/Servers/Common/vtkRemoteConnection.cxx:75


More information about the ParaView mailing list