MantisBT - ParaView
View Issue Details
0011777ParaViewBugpublic2011-01-31 09:162013-05-01 10:39
Nikhil Shetty 
Utkarsh Ayachit 
normalminorhave not tried
closedopen 
3.8.1 
 
TBD
incorrect functionality
0011777: DISPLAY environment variable (from *.pvx files for CAVE) being set after display is opened
The error (unable to open display) is occurring before the environment variables (from the pvx file) for the pvservers is being set. The vtkPVDisplayInformation::CopyFromObject is being called prior to the environment variables being set resulting in vtkSMMultiProcessRenderView::EndCreateVTKObjects setting RemoteRenderAvailable=false. I have not yet figured out how to do it, but the best solution would involve the PVX info being passed to all of the pvservers when they are started (assuming the pvx file is passed to the pvserver command) and if so, then the environment variable(s) should be set immediately - maybe the vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager should run before testing the displays assuming it is actually telling the pvservers how (and when) to set their environments. I've tested paraview-3.8.1 on our render cluster resulting in same errors. If we had only 1 X screen or X display and only 1 GPU per node, I agree we could set the DISPLAY environment variable. But, being we have 2 GPUs per render nodes in the CAVE and 2 GPUs per compute node in our render cluster, paraview is not working the way it should and it is a bug that should be fixed. Below is some basic output from printf statements I set in various functions to show what is and is not happening. It appears the HOSTNAME variable is not set when the pvservers are started so simply accept that "host: (null)" is a pvserver on one of the render nodes whereas "host:console" is the head node where the client is running.
file: paraview3-cave
*******************************************************
LD_LIBRARY_PATH=/usr/local/qt-4.6.3/lib:$LD_LIBRARY_PATH

PV_PATH=/usr/local/paraview-3.8.0/bin

mpirun -machinefile /etc/paraview/machines -n 8 \
$PV_PATH/pvserver /etc/paraview/vis.pvx &

sleep 2

$PV_PATH/paraview --stereo --machines=/etc/paraview/machines \
--server=vis1bottom /etc/paraview/vis.pvx

sleep 5

killall mpirun
*******************************************************

file: /etc/paraview/vis.pvx
*******************************************************
<?xml version="1.0" ?>
<pvx>
 <Process Type="client" />
 <Process Type="server" >
   <Machine Name="vis1bottom"
       Environment="DISPLAY=vis1bottom:0.0"
       LowerLeft="-1.0 -1.0 -1.0"
       LowerRight="1.0 -1.0 -1.0"
       UpperLeft="-1.0 0.125 -1.0" />
   <Machine Name="vis1top"
       Environment="DISPLAY=vis1top:0.1"
       LowerLeft="-1.0 -0.125 -1.0"
       LowerRight="1.0 -0.125 -1.0"
       UpperLeft="-1.0 1.0 -1.0" />
   <Machine Name="vis2back"
       Environment="DISPLAY=vis2back:0.0"
       LowerLeft="-1.0 -1.0 1.0"
       LowerRight="1.0 -1.0 1.0"
       UpperLeft="-1.0 -1.0 -0.125" />
   <Machine Name="vis2front"
       Environment="DISPLAY=vis2front:0.1"
       LowerLeft="-1.0 -1.0 0.125"
       LowerRight="1.0 -1.0 0.125"
       UpperLeft="-1.0 -1.0 -1.0" />
   <Machine Name="vis3bottom"
       Environment="DISPLAY=vis3bottom:0.0"
       LowerLeft="1.0 -1.0 -1.0"
       LowerRight="1.0 -1.0 1.0"
       UpperLeft="1.0 0.125 -1.0" />
   <Machine Name="vis3top"
       Environment="DISPLAY=vis3top:0.1"
       LowerLeft="1.0 -0.125 -1.0"
       LowerRight="1.0 -0.125 1.0"
       UpperLeft="1.0 1.0 -1.0" />
   <Machine Name="vis4bottom"
       Environment="DISPLAY=vis4bottom:0.0"
       LowerLeft="-1.0 -1.0 1.0"
       LowerRight="-1.0 -1.0 -1.0"
       UpperLeft="-1.0 0.125 1.0" />
   <Machine Name="vis4top"
       Environment="DISPLAY=vis4top:0.1"
       LowerLeft="-1.0 -0.125 1.0"
       LowerRight="-1.0 -0.125 -1.0"
       UpperLeft="-1.0 1.0 1.0" />
 </Process>
</pvx>
*******************************************************

file: /etc/paraview/machines
*******************************************************
vis1top
vis1bottom
vis2front
vis2back
vis3top
vis3bottom
vis4top
vis4bottom
*******************************************************

$ paraview3-cave
Listen on port: 11111
Waiting for client...
vtkPVDisplayInformation::CopyFromObject - host: console testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: TRUE
Waiting for server...
Client connected.
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkPVDisplayInformation::CopyFromObject - host: (null) testing XOpenDisplay
vtkPVDisplayInformation::CopyFromObject - CanOpenDisplay: FALSE
vtkSMMultiProcessRenderView::EndCreateVTKObjects - host: console displayInfo di ptr: 0x14ecfd80 di->GetCanOpenDisplay: FALSE
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
vtkSMClientServerRenderSyncManagerHelper::InitializeRenderSyncManager - host console sending DISPLAY environment
ERROR: Error occured on console
ERROR: In /root/install/ParaView-3.8.1/Servers/ServerManager/vtkSMIceTMultiDisplayRenderViewProxy.cxx, line 71
vtkSMCaveRenderViewProxy (0x14eb6df0): Display not accessible on server. Cannot render on tiles with inaccesible display.

vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis1bottom:0.0
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis1top:0.1
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis3bottom:0.0
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis2back:0.0
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis2front:0.1
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis3top:0.1
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis4bottom:0.0
vtkProcessModule::SetProcessEnvironmentVariable - host: (null) Setting environment variable: DISPLAY=vis4top:0.1
Client connection closed.
mpirun: no process killed
No tags attached.
Issue History
2011-01-31 09:16Nikhil ShettyNew Issue
2011-02-17 09:22Utkarsh AyachitAssigned To => Utkarsh Ayachit
2011-02-17 09:22Utkarsh AyachitStatusbacklog => tabled
2013-05-01 10:39Nikhil ShettyProject => TBD
2013-05-01 10:39Nikhil ShettyType => incorrect functionality
2013-05-01 10:39Nikhil ShettyNote Added: 0030664
2013-05-01 10:39Nikhil ShettyStatusbacklog => closed
2013-05-01 10:39Nikhil ShettySteps to Reproduce Updatedbug_revision_view_page.php?rev_id=585#r585

Notes
(0030664)
Nikhil Shetty   
2013-05-01 10:39   
Not observed in latest v3.98