Client / Server configuration

Hello,

I am using ParaView with OpenFOAM. I have just changed over to using OpenFOAM in a Docker container.

My configuration is a remote server on which I have OpenFOAM running in Docker. I am running pvserver in the container and want to run ParaView on my Mac workstation across a network. I am trying to set up the client/server to connect ParaView to pvserver in the container. I can only access the server from the Mac via SSH.

How do I configure to connect ParaView to the pvserver from the Mac to the server and then across into the container.

Thanks,

Joe.

I was able to make some progress.

I was able to traverse the network with the following command in the docker container (note that the docker container is running on Ubuntu 16.04 LTS)::

pvserver -rc --client-host=25.92.7.188 --server-port=20010 --use-offscreen-rendering

The server side gives the following error:

Connecting to client (reverse connection requested)…
Connection URL: csrc://25.92.7.188:20010
ERROR: In /home/ubuntu/OpenFOAM/ThirdParty-dev/ParaView-5.4.0/ParaViewCore/ClientServerCore/Core/vtkTCPNetworkAccessManager.cxx, line 315
vtkTCPNetworkAccessManager (0x12f2900): Failed to connect to 25.92.7.188:20010

ERROR: In /home/ubuntu/OpenFOAM/ThirdParty-dev/ParaView-5.4.0/ParaViewCore/ClientServerCore/Core/vtkTCPNetworkAccessManager.cxx, line 328
vtkTCPNetworkAccessManager (0x12f2900):


Connection failed during handshake. This can happen for the following reasons:

  1. Connection dropped during the handshake.
  2. vtkSocketCommunicator::GetVersion() returns different values on the
    two connecting processes (Current value: 100).
  3. ParaView handshake strings are different on the two connecting
    processes (Current value: paraview.5.4.renderingbackend.opengl).

On the paraview client I get the following error (note that the client is 5.4.0 on a Mac OSX):

ERROR: In /Users/kitware/buildbot-slave/8275bd07/source-paraview/ParaViewCore/ClientServerCore/Core/vtkTCPNetworkAccessManager.cxx, line 413
vtkTCPNetworkAccessManager (0x60000046fd40):


Connection failed during handshake. This can happen for the following reasons:

  1. Connection dropped during the handshake.
  2. vtkSocketCommunicator::GetVersion() returns different values on the
    two connecting processes (Current value: 100).
  3. ParaView handshake strings are different on the two connecting
    processes (Current value: paraview.5.4.renderingbackend.opengl2).

I am not sure if this is a compilation error or if it has something to do with the system attempting to render on the headless server. Any thoughts?

The good news is that the server and client are talking. The bad news is that it looks like your pvserver was built with the OpenGL backend (Current value: paraview.5.4.renderingbackend.opengl) while your client was built with the OpenGL2 backend (Current value: paraview.5.4.renderingbackend.opengl2). These need to both be built with the same backend. OpenGL2 is the modern backend, so I would recommend rebuilding pvserver with the OpenGL2 backend and trying again.

Can you tell me, please, how exactly should I do the rebuilding? I am trying to build a pvserver in a Linux subsystem for Windows (WSL) and connect to it using ParaView installed directly on Windows. I keep getting the same error message. Is there a way how to overcome this?

That’s a new configuration I haven’t encountered yet. Are you building the client as well? If so, are you building from the same source code?

I am not sure I understand. When using WSL, where I have installed ParaView 5.4.1., I simpy set pvserver with particular server port and then I try to connect to it using ParaView 5.4.1 installed directly in Windows, that is NOT under WSL. But when I try to connect to the pvserver I get the same error message. Could it be that ParaView in Linux uses OpenGL as a rendering backend, whereas ParaView in Windows uses OpenGL2?

You said you are building a pvserver, which I take to mean you are compiling ParaView. In the CMake configuration, check to see the value of VTK_RENDERING_BACKEND. It should be OpenGL2.

Thank you for your answers. The rendering backend was different for each of the versions. Problem was, that I installed ParaView on Ubuntu using repository version of the program (via apt-get install) which is implicitly using OpenGL as a rendering backend. But on the webpages of ParaView, there is also a version for Linux with the OpenGL2 backend, so I downloaded the tarball, extracted it and know everything works just fine.

My best regards

Jiri

Great, I’m glad it’s working. Thanks for following up.