DISPLAY environment variable (from *.pvx files for CAVE) being set after display is opened
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
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.