I installed ParaView 5.11.1 in a Docker container running Ubuntu 20.04 as per the build instructions. The resultant pvserver executable reports the following:
paraview_build/bin# ./pvserver --version
paraview version 5.11.1-1726-gecc6322fb4
paraview_build/bin#
When I try to connect to the server from a Windows client (v5.11.1) I get the dreaded “vtkSocketCommunicator::GetVersion()” mismatch on the handshake.
Looking at the Windows client, the “About” box states the vtk version is 9.2.20220823.
The source code cloned into the Docker container has #define VTK_VERSION_FULL "9.3.0.rc0-456-g6d8a780335" in the VTK/Common/Core/vtkVersionFull.h file.
Is this the source of the error? If so, why does v5.11.1 on windows and built from source use different versions of VTK?
If the executable in docker was build using the master branch while the windows executable was downloaded from the release page of , it will not work since the release is several commits older and thus results in a different version.
Few options:
compile on windows the exact same commit you compiled in docker.
download the linux executable of the same release version inside docker.
v5.11.1 is the base version or “closest release to current state”.
Based on your configuration the actual (full) version of ParaView in docker is 5.11.1-1726-gecc6322fb4 This name comes from git describe and it means that it is 1726 commits away from the latest tag which is v5.11.1 and the current HEAD is at gecc6322fb4. Thus if your Windows executable is downloaded from the release page of 5.11.1 it is 1726 commits behind.
Just tested client-server connection on Linux between 5.11.0 and 5.11.1 and while they are compatible I do not expect this to be the case in general. This is why:
The error you see comes from here. And the hash is generated here .
So, every time the vtkSocketCommunicator.cxx file is modified its hash changes and thus the two versions are not compatible any more.
Sorry for the confusion the v5.11.1 in your built Docker version number caused!
The v5.11.1 is a bit of a misnomer in your docker version of ParaView. We use the last release version in the master build version for some information about which version of master this is, as Christos mentioned. But any version on the master branch after we created the v5.11.1 release can totally change VTK versions and communication protocols and hence not be compatible with the latest point release. Now, if your docker image has the version v5.11.0 or v5.11.1 installed, that should absolutely work with your Windows client. And if we release a v5.11.2, that version should also work.
If you want to build v5.11.1, you should git checkout v5.11.1 in the ParaView source code right after cloning it. That should resolve any connection issues you have.
I checked out the 5.11.1 “base” source code from the git repository during the Docker build and rebuilt the modules as indicated by the instructions - it works!
I’m a little bit nervous about the “should” in comments like “And if we release a v5.11.2, that version should also work” - I may eventually be supporting multiple ParaView users that connect to a central server, and it seems that I can’t actually know anything about what versions are compatible with one another unless and until something breaks?
Usually I’d try to infer this from e.g. the point release numbers, but it seems that approach may be essentially useless where ParaView is concerned?