Mfix-22.2.1 on RHEL 7 with XQuartz 2.8.2 symbol krb5_ser_context_init, version krb5_3_MIT not defined in file libkrb5.so.3 with link time reference

Any tips to work around this?

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.3.2 requires qtpy>=2.1.0, but you have qtpy 1.11.3 which is incompatible.
Successfully installed mfix-22.2.1 pyqt5-5.15.7
(base) [me@host ~]$ mfix -k
Traceback (most recent call last):
  File "/path/to/.local/bin/mfix", line 5, in <module>
    from mfixgui.gui import main
  File "/path/to/.local/lib/python3.9/site-packages/mfixgui/gui.py", line 70, in <module>
    from .job import JobManager
  File "/path/to/.local/lib/python3.9/site-packages/mfixgui/job.py", line 16, in <module>
    from qtpy.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
  File "/path/to/.local/lib/python3.9/site-packages/qtpy/QtNetwork.py", line 17, in <module>
    from PyQt5.QtNetwork import *
ImportError: /lib64/libgssapi_krb5.so.2: symbol krb5_ser_context_init, version krb5_3_MIT not defined in file libkrb5.so.3 with link time reference

Is it possible to install miniconda/mambaforge or anaconda?

Yes we use Bright Computing’s software and Anaconda 2021.11 with Python 3.9.7 is loaded.

I followed this suggestion:
pip uninstall pyside2 qt pyqt5 and then to install pyside==5.13.0 which worked for mfix 21.4 however installing mfix 22.2.1 results again in:

Traceback (most recent call last):
  File "/moto/home/rk3199/.local/bin/mfix", line 5, in <module>
    from mfixgui.gui import main
  File "/moto/home/rk3199/.local/lib/python3.9/site-packages/mfixgui/gui.py", line 70, in <module>
    from .job import JobManager
  File "/moto/home/rk3199/.local/lib/python3.9/site-packages/mfixgui/job.py", line 16, in <module>
    from qtpy.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
  File "/moto/opt/anaconda3-2021.11/lib/python3.9/site-packages/qtpy/QtNetwork.py", line 17, in <module>
    from PyQt5.QtNetwork import *
ImportError: /lib64/libgssapi_krb5.so.2: symbol krb5_ser_context_init, version krb5_3_MIT not defined in file libkrb5.so.3 with link time reference

here are the results from the mfix upgrade:

 python3 -m pip install --user mfix-22.2.1.tar.gz 
Processing ./mfix-22.2.1.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: pyqtgraph in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (0.11.1)
Requirement already satisfied: simplejson in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (3.17.6)
Requirement already satisfied: packaging in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (20.9)
Collecting pyqt5
  Using cached PyQt5-5.15.7-cp37-abi3-manylinux1_x86_64.whl (8.4 MB)
Requirement already satisfied: matplotlib in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from mfix==22.2.1) (3.4.3)
Requirement already satisfied: vtk==9.2.0rc1 in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (9.2.0rc1)
Requirement already satisfied: gitpython in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (3.1.27)
Requirement already satisfied: ffmpeg-python in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (0.2.0)
Requirement already satisfied: psutil in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from mfix==22.2.1) (5.8.0)
Requirement already satisfied: requests>=2.28.1 in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (2.28.1)
Requirement already satisfied: pyyaml in ./.local/lib/python3.9/site-packages (from mfix==22.2.1) (5.4.1)
Requirement already satisfied: qtpy in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from mfix==22.2.1) (1.10.0)
Requirement already satisfied: flask in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from mfix==22.2.1) (1.1.2)
Requirement already satisfied: wslink>=1.0.4 in ./.local/lib/python3.9/site-packages (from vtk==9.2.0rc1->mfix==22.2.1) (1.4.1)
Requirement already satisfied: pyparsing>=2.2.1 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (3.0.4)
Requirement already satisfied: numpy>=1.16 in ./.local/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (1.19.3)
Requirement already satisfied: cycler>=0.10 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (1.3.1)
Requirement already satisfied: python-dateutil>=2.7 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (2.8.2)
Requirement already satisfied: pillow>=6.2.0 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from matplotlib->mfix==22.2.1) (8.4.0)
Requirement already satisfied: six in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from cycler>=0.10->matplotlib->mfix==22.2.1) (1.16.0)
Requirement already satisfied: certifi>=2017.4.17 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from requests>=2.28.1->mfix==22.2.1) (2021.10.8)
Requirement already satisfied: idna<4,>=2.5 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from requests>=2.28.1->mfix==22.2.1) (3.2)
Requirement already satisfied: charset-normalizer<3,>=2 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from requests>=2.28.1->mfix==22.2.1) (2.0.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from requests>=2.28.1->mfix==22.2.1) (1.26.7)
Requirement already satisfied: aiohttp in ./.local/lib/python3.9/site-packages (from wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (3.8.1)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in ./.local/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (4.0.2)
Requirement already satisfied: frozenlist>=1.1.1 in ./.local/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (1.3.0)
Requirement already satisfied: multidict<7.0,>=4.5 in ./.local/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (6.0.2)
Requirement already satisfied: attrs>=17.3.0 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (21.2.0)
Requirement already satisfied: aiosignal>=1.1.2 in ./.local/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (1.2.0)
Requirement already satisfied: yarl<2.0,>=1.0 in ./.local/lib/python3.9/site-packages (from aiohttp->wslink>=1.0.4->vtk==9.2.0rc1->mfix==22.2.1) (1.7.2)
Requirement already satisfied: future in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from ffmpeg-python->mfix==22.2.1) (0.18.2)
Requirement already satisfied: Jinja2>=2.10.1 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from flask->mfix==22.2.1) (2.11.3)
Requirement already satisfied: Werkzeug>=0.15 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from flask->mfix==22.2.1) (2.0.2)
Requirement already satisfied: click>=5.1 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from flask->mfix==22.2.1) (8.0.3)
Requirement already satisfied: itsdangerous>=0.24 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from flask->mfix==22.2.1) (2.0.1)
Requirement already satisfied: MarkupSafe>=0.23 in /path/toanaconda3-2021.11/lib/python3.9/site-packages (from Jinja2>=2.10.1->flask->mfix==22.2.1) (1.1.1)
Requirement already satisfied: gitdb<5,>=4.0.1 in ./.local/lib/python3.9/site-packages (from gitpython->mfix==22.2.1) (4.0.9)
Requirement already satisfied: smmap<6,>=3.0.1 in ./.local/lib/python3.9/site-packages (from gitdb<5,>=4.0.1->gitpython->mfix==22.2.1) (5.0.0)
Requirement already satisfied: PyQt5-Qt5>=5.15.0 in ./.local/lib/python3.9/site-packages (from pyqt5->mfix==22.2.1) (5.15.2)
Requirement already satisfied: PyQt5-sip<13,>=12.11 in ./.local/lib/python3.9/site-packages (from pyqt5->mfix==22.2.1) (12.11.0)
Building wheels for collected packages: mfix
  Building wheel for mfix (PEP 517) ... done
  Created wheel for mfix: filename=mfix-22.2.1-py3-none-any.whl size=54063063 sha256=28bb999cd204af22cadb502f99b155126639e9169b087f58b9fff30c4a44e75e
  Stored in directory: /path/to/.cache/pip/wheels/30/f8/20/7a6fe0939c2faf5c6c27ffcc9574f67a2a261ab74f248657f2
Successfully built mfix
Installing collected packages: pyqt5, mfix
  Attempting uninstall: mfix
    Found existing installation: mfix 21.4
    Uninstalling mfix-21.4:
      Successfully uninstalled mfix-21.4
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.3.2 requires qtpy>=2.1.0, but you have qtpy 1.10.0 which is incompatible.

Can you install MFiX as a Conda package rather than using pip?

I highly suggest miniforge and mamba -

PyQt5 is a required package for MFiX. Do not uninstall it and replace with pyside.

Sure that seems to be working least with mfix -k. However I’m still getting these errors even with the latest XQuartz 2.8.2

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
2022-08-24 11:53:12.558 (   5.062s) [        AAAF0F00]vtkOpenGLRenderWindow.c:499    ERR| vtkXOpenGLRenderWindow (0x55555ceef800): Unable to find a valid OpenGL 3.2 or later implementation. Please update your video card driver to the latest version. If you are using Mesa please make sure you have version 11.2 or later and make sure your driver in Mesa supports OpenGL 3.2 such as llvmpipe or openswr. If you are on windows and using Microsoft remote desktop note that it only supports OpenGL 3.2 with nvidia quadro cards. You can use other remoting software such as nomachine to avoid this issue.

I did try using a locally installed miniconda & mamba and tested the source install via pip still getting this error:

Traceback (most recent call last):
  File "/path/to/mambaforge/bin/mfix", line 5, in <module>
    from mfixgui.gui import main
  File "/path/to/mambaforge/lib/python3.9/site-packages/mfixgui/gui.py", line 70, in <module>
    from .job import JobManager
  File "/path/to/mambaforge/lib/python3.9/site-packages/mfixgui/job.py", line 16, in <module>
    from qtpy.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
  File "/path/to/mambaforge/lib/python3.9/site-packages/qtpy/QtNetwork.py", line 14, in <module>
    from PyQt5.QtNetwork import *
ImportError: /lib64/libgssapi_krb5.so.2: symbol krb5_ser_context_init, version krb5_3_MIT not defined in file libkrb5.so.3 with link time reference

I also tried upgrading XQuartz to 2.8.2 RC1,

2022-08-24 12:12:01.262 ( 23.819s) [ AAAF0F00]vtkOpenGLRenderWindow.c:493 ERR| vtkEGLRenderWindow (0x55555cd84db0): GLEW could not be initialized: Missing GL version

as well as:

mfix - ERROR - restoring graphics: setValue(self, int): argument 1 has unexpected type 'numpy.float64'
Error saving ui state 'BaseGraphicTab' object has no attribute 'monitor_table'

Edit: I’m seeing this log in /var/log/messages every time it tries to open:
kernel: mfix[421820]: segfault at 0 ip (null) sp 00007fffffffafd8 error 14 in ld-2.17.so[2aaaaaaab000+22000]

Edit 2, from Windows MobaXterm see these logs/errors:

mfix
2022-08-24 14:51:16.419 (   7.155s) [        AACCA400]vtkOpenGLRenderWindow.c:499    ERR| vtkXOpenGLRenderWindow (0x55555cf0d7c0): Unable to find a valid OpenGL 3.2 or later implementation. Please update your video card driver to the latest version. If you are using Mesa please make sure you have version 11.2 or later and make sure your driver in Mesa supports OpenGL 3.2 such as llvmpipe or openswr. If you are on windows and using Microsoft remote desktop note that it only supports OpenGL 3.2 with nvidia quadro cards. You can use other remoting software such as nomachine to avoid this issue.
2022-08-24 14:51:16.419 (   7.155s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.419 (   7.155s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.420 (   7.156s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.420 (   7.156s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.420 (   7.156s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.420 (   7.156s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.420 (   7.156s) [        AACCA400]     vtkOpenGLState.cxx:1795  WARN| Hardware does not support the number of textures defined.
2022-08-24 14:51:16.421 (   7.157s) [        AACCA400]   vtkShaderProgram.cxx:437    ERR| vtkShaderProgram (0x55555ef5c170): 1: #version 150
2: #ifndef GL_ES
3: #define highp
4: #define mediump
5: #define lowp
6: #endif // GL_ES
7: #define attribute in
8: #define varying out
9:
10:
11: /*=========================================================================
12:
13:   Program:   Visualization Toolkit
14:   Module:    vtkPolyData2DVS.glsl
15:
16:   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
17:   All rights reserved.
18:   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
19:
20:      This software is distributed WITHOUT ANY WARRANTY; without even
21:      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
22:      PURPOSE.  See the above copyright notice for more information.
23:
24: =========================================================================*/
25:
26: // all variables that represent positions or directions have a suffix
27: // indicating the coordinate system they are in. The possible values are
28: // MC - Model Coordinates
29: // WC - WC world coordinates
30: // VC - View Coordinates
31: // DC - Display Coordinates
32:
33: in vec4 vertexWC;
34:
35: // material property values
36: in vec4 diffuseColor;
37: out vec4 fcolorVSOutput;
38:
39: // Texture coordinates
40: //VTK::TCoord::Dec
41:
42: // Apple Bug
43: //VTK::PrimID::Dec
44:
45: uniform mat4 WCVCMatrix;  // World to view matrix
46:
47: void main()
48: {
49:   // Apple Bug
50:   //VTK::PrimID::Impl
51:
52:   gl_Position = WCVCMatrix*vertexWC;
53:   //VTK::TCoord::Impl
54:   fcolorVSOutput = diffuseColor;
55: }

2022-08-24 14:51:16.421 (   7.157s) [        AACCA400]   vtkShaderProgram.cxx:438    ERR| vtkShaderProgram (0x55555ef5c170): 0:1(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.00 ES, and 3.00 ES

2022-08-24 14:51:16.422 (   7.158s) [        AACCA400]   vtkShaderProgram.cxx:437    ERR| vtkShaderProgram (0x55555ef6a250): 1: #version 150
2: #ifndef GL_ES
3: #define highp
4: #define mediump
5: #define lowp
6: #endif // GL_ES
7: #define attribute in
8: #define varying out
9:
10:
11: /*=========================================================================
12:
13:   Program:   Visualization Toolkit
14:   Module:    vtkPolyDataVS.glsl
15:
16:   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
17:   All rights reserved.
18:   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
19:
20:      This software is distributed WITHOUT ANY WARRANTY; without even
21:      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
22:      PURPOSE.  See the above copyright notice for more information.
23:
24: =========================================================================*/
25:
26: in vec4 vertexMC;
27:
28:
29:
30: // frag position in VC
31: //VTK::PositionVC::Dec
32:
33: // optional normal declaration
34: //VTK::Normal::Dec
35:
36: // extra lighting parameters
37: //VTK::Light::Dec
38:
39: // Texture coordinates
40: //VTK::TCoord::Dec
41:
42: // material property values
43: //VTK::Color::Dec
44:
45: // clipping plane vars
46: //VTK::Clip::Dec
47:
48: // camera and actor matrix values
49: uniform mat4 MCDCMatrix;
50:
51: // Apple Bug
52: //VTK::PrimID::Dec
53:
54: // Value raster
55: //VTK::ValuePass::Dec
56:
57: // picking support
58: //VTK::Picking::Dec
59:
60: void main()
61: {
62:   //VTK::CustomBegin::Impl
63:
64:   //VTK::Color::Impl
65:
66:   //VTK::Normal::Impl
67:
68:   //VTK::TCoord::Impl
69:
70:   //VTK::Clip::Impl
71:
72:   //VTK::PrimID::Impl
73:
74:     gl_Position = MCDCMatrix * vertexMC;
75:
76:
77:   //VTK::ValuePass::Impl
78:
79:   //VTK::Light::Impl
80:
81:   //VTK::Picking::Impl
82:
83:   //VTK::CustomEnd::Impl
84: }

2022-08-24 14:51:16.422 (   7.159s) [        AACCA400]   vtkShaderProgram.cxx:438    ERR| vtkShaderProgram (0x55555ef6a250): 0:1(10): error: GLSL 1.50 is not supported. Supported versions are: 1.10, 1.20, 1.00 ES, and 3.00 ES

Segmentation fault

edit 3: we do have libGLEW.so here and I’ve tried exporting LD_PRELOAD with these paths:

/usr/lib64/libGLEW.so
/usr/lib64/libGLEW.so.1.10
/usr/lib64/libGLEW.so.1.10.0
/usr/lib64/libGLEW.so.1.9
/usr/lib64/libGLEW.so.1.9.0

Update, if I use a GPU node, e.g., one with a Nvidia V100, and load a cuda library, e.g., module load cuda11.0/toolkit, mfix 22.2.1 opens. I do see this error: Failed to establish dbus connectionFailed to establish dbus connection

Does that mean the included video cards in our non-GPU nodes just aren’t compatible with mfix?

For non-GPU nodes, we recommend virtualgl.

I believe I’ve seen mention of Paraview, e.g., download the results from mfix and open in Paraview? Do you have a how to or tutorial I can reference?

Also if anyone comes across this, on our GPU nodes we had an older version of CUDA running, 495.29.05 and that appears to have been the cause of the vtkXOpenGLRenderWindow (0x55555d1f0c10): Unable to find a valid OpenGL 3.2 or later implementation error. Once we upgraded to 515.65.01 mfix 22-2.1 opens.

Another problem I ran into is I assumed that the libOpenGL.so.1.0.0 library comes with CUDA toolkit includes OpenGL at least that’s what the docs say (unless you exclude when runing the .sh installer which I definitely did not do). But all I see is (from the old installation module)

ls -l /path/to/cuda11.0/toolkit/11.0.3/lib64/libOpen*
lrwxrwxrwx 1 root root   14 Sep 16  2020 /path/to/cuda11.0/toolkit/11.0.3/lib64/libOpenCL.so -> libOpenCL.so.1
lrwxrwxrwx 1 root root   16 Sep 16  2020 /path/to/cuda11.0/toolkit/11.0.3/lib64/libOpenCL.so.1 -> libOpenCL.so.1.0
lrwxrwxrwx 1 root root   18 Sep 16  2020 /path/to/cuda11.0/toolkit/11.0.3/lib64/libOpenCL.so.1.0 -> libOpenCL.so.1.0.0
-rwxr-xr-x 1 root root 27288 Aug 25  2020 /path/to/cuda11.0/toolkit/11.0.3/lib64/libOpenCL.so.1.0.0

And from the new one:

ls -l /path/to/cuda11.7/lib64/libOpen*
lrwxrwxrwx 1 root root    14 Aug 25 15:47 /path/to/cuda11.7/lib64/libOpenCL.so -> libOpenCL.so.1
lrwxrwxrwx 1 root root    16 Aug 25 15:47 /path/to/cuda11.7/lib64/libOpenCL.so.1 -> libOpenCL.so.1.0
lrwxrwxrwx 1 root root    18 Aug 25 15:47 /path/to/cuda11.7/lib64/libOpenCL.so.1.0 -> libOpenCL.so.1.0.0
-rwxr-xr-x 1 root root 30856 Aug 25 15:47 /path/to/cuda11.7/lib64/libOpenCL.so.1.0.0

Or am I misunderstanding how the CUDA toolkit installer works? I do see these but I don’t think they’re what’s needed:

-rw-r--r-- 1 root root 674912 Aug 25 15:48 /path/to/cuda11.7/nsight-compute-2022.2.1/host/linux-desktop-glibc_2_11_3-x64/libQt6OpenGL.so.6
-rw-r--r-- 1 root root  48296 Aug 25 15:48 /path/to/cuda11.7/nsight-compute-2022.2.1/host/linux-desktop-glibc_2_11_3-x64/libQt6OpenGLWidgets.so.6
-rwxr-xr-x 1 root root 872224 Aug 25 15:48 /path/to/cuda11.7/nsight-compute-2022.2.1/host/linux-desktop-glibc_2_11_3-x64/OpenGLVersionChecker