Mfix in a Docker or Singularity container?

Are there any known Docker or Singularity containers that are in the wild? Or perhaps someone has a how-to available to deal with any intricacies with X forwarding?

We have custom containers that we use in our CI pipeline, but don’t do any X forwarding. What are you running on?

We use RHEL in a HPC cluster and users invoke MFIX via a cli with ssh -X or ssh -Y. I have another thread that speaks to the difficulties of having certain packages installed and updated. This however breaks a VM we have that runs on an older version of NICE Enginframe. Will any of the Continuous Integration containers work in this environment?

I mean the point of Docker is to isolate the environment from the OS. Our build Dockerfile is based on the condaforge/mambaforge Docker file, and we add some build tools (conda-build, sphinx, etc.) to it. So probably not that useful.

# Docker Image for Building MFiX conda packages

FROM condaforge/mambaforge
LABEL maintainer="MFiX Development Team <admin@mfix.netl.doe.gov>"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get -q update \
   && apt-get -q -y install make #  for building doc

#RUN apt-get -q update \
#  && apt-get -q -y install --no-install-recommends \
#  imagemagick \
#  libgl1 \
#  libxt6 \
#  make \
#  && rm -rf /var/lib/apt

RUN conda config --add channels conda-forge
RUN conda config --set channel_priority strict
RUN conda clean --all -y
RUN mamba install conda-build conda-verify
RUN rm -f /opt/conda/conda-meta/.wh.*json
RUN mamba install sphinx sphinx_rtd_theme=0.5.2 sphinx-prompt

RUN pip install sphinx-substitution-extensions

We’re looking to see if it’d be possible to create our own Singularity container that would allow mfix to run interactively. I see ENV DEBIAN_FRONTEND noninteractive is set so I don’t think that’ll satisfy our needs.

We’ve been using Mamba lately, since it’s a lot faster than Conda. Information on Mamba is here: Open Software Packaging for Science | by QuantStack | Medium

I would suggest starting from the ‘mambaforge’ image (condaforge/mambaforge) and then do the MFiX install on top of that - you can use ‘mamba install’ just like ‘conda install’, it’s 100% compatible, just faster. You will have to use your download token from the install instructions. Then take a snapshot of the resulting image, it should have everything you need.

As Justin points out, as long as the system runs Docker, it should be able to run any docker image - that’s the point of Docker, isn’t it?

– Charles

Assuming we use the instructions provided by @onlyjus to install MFIX would it be better to use the condo create option or python3 -m pip install? If we chose the latter than mfix can start with a RUN command, correct? I take it mamba create would work as well?

I’ve tried this:

RUN conda create -n mfix-22.1 mfix=22.1 mfix-doc=22.1 mfix-gui=22.1 mfix-src=22.1 -c conda-forge -c 
https://mfix.netl.doe.gov/s3/<my-string>//conda/dist
CMD ["/opt/conda/bin/conda activate mfix-22.1"]

As well as this:
RUN python3 -m pip install /Users/me/mfixtest/mfix-22.1.tar.gz --src= /Users/me/mfixtest

But this error happens:

[11/11] RUN python3 -m pip install /Users/me/mfixtest/mfix-22.1.tar.gz --src= /Users/me/mfixtest:
#0 1.091 WARNING: Requirement '/Users/me/mfixtest/mfix-22.1.tar.gz' looks like a filename, but the file does not exist
#0 1.092 ERROR: Invalid requirement: '/Users/me/mfixtest'
#0 1.092 Hint: It looks like a path. File '/Users/me/mfixtest' does not exist.

But that path and file does exist locally. I’m trying this on a Mac with Docker Compose based on this tutorial. What should the RUN commands look like? When I try starting mfix from a bash shell in the container I get this error:

(base) root@90e61a1afe0f:/# conda activate mfix-22.1
(mfix-22.1) root@90e61a1afe0f:/# mfix
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.
Aborted

I’m not sure why the pip command is not working. I recommend sticking with Conda/Mamba. Note that it’s not necessary to activate an environment before running mfix, you can do this in one step as

conda run -n mfix-22.1 mfix

Regarding the display problems - I believe this is not related to MFiX. Can you run any other graphic application from the remote Docker image? I’d start with first popping up something simple like xterm; then if that works, something using GL like glxgears.

– Charles

I have not tried to run GUI apps in docker containers and I am not sure how you are planning on using the containers, but you need to expose some kind of display and x11 connection for the container. A quick google search shows two options for using Docker and connecting to the local $DISPLAY and xll:

Purely through the Docker file, you need to add the $DISPLAY and x11 variable/path (using firefox as an example, try to get that to work first). I don’t know where x11 is on OSX though.

$ xhost +
$ docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox:0.0.1
$ xhost -

ref: Docker Container GUI Display - Lei Mao's Log Book

You can also use docker-compose to set these variables in a yaml file: https://www.cloudsavvyit.com/10520/how-to-run-gui-applications-in-a-docker-container/

Also, as @cgw said, I suggest sticking with conda/mamba. Also, since you are already encapsulating mfix in a container, you don’t need to create another environment in that container…

I got that working:

 docker run -ti --rm -e DISPLAY=docker.for.mac.host.internal:0  mfix
(base) root@4a3f9c30d5ce:/# glxgears

Getting closer with mfix but have this error that I’ve seen outside a container:

(base) root@4a3f9c30d5ce:/# conda run -n mfix-22.1 mfix
ERROR conda.cli.main_run:execute(41): `conda run mfix` failed. (See above for error)
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
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-04-20 15:16:52.386 (  11.276s) [        292F2740]vtkOpenGLRenderWindow.c:499    ERR| vtkXOpenGLRenderWindow (0x55aec342d200): 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.
/tmp/tmp1ld2pykd: line 3:    34 Segmentation fault      mfix

Edit: with the following ENV variables set this error happens:

MESA_GL_VERSION_OVERRIDE=3.2 MESA_GLSL_VERSION_OVERRIDE=150 conda run -n mfix-22.1 mfix
ERROR conda.cli.main_run:execute(41): `conda run mfix` failed. (See above for error)
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
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-04-20 15:27:41.409 (   3.468s) [        292A5740]vtkXOpenGLRenderWindow.:651    ERR| vtkXOpenGLRenderWindow (0x5609f2fa7dc0): Cannot create GLX context.  Aborting.
/tmp/tmp5ucm6dwp: line 3:    65 Aborted                 mfix

Here is all the debug that comes from running docker run -e DISPLAY=docker.for.mac.host.internal:0 -e MESA_GL_VERSION_OVERRIDE=3.2 -e MESA_GLSL_VERSION_OVERRIDE=150 -e LIBGL_DEBUG=verbose -e QT_DEBUG_PLUGINS=1 mfix21.4 conda run -n mfix-21.4 mfix

ERROR conda.cli.main_run:execute(41): `conda run mfix` failed. (See above for error)
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqeglfs.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "archreq": 0,
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqminimal.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqminimal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimal"
        ]
    },
    "archreq": 0,
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqminimalegl.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqminimalegl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimalegl"
        ]
    },
    "archreq": 0,
    "className": "QMinimalEglIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqoffscreen.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqoffscreen.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "offscreen"
        ]
    },
    "archreq": 0,
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqvnc.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqvnc.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vnc"
        ]
    },
    "archreq": 0,
    "className": "QVncIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqwebgl.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqwebgl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "webgl"
        ]
    },
    "archreq": 0,
    "className": "QWebGLIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("webgl")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforms/libqxcb.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/platforms" ...
loaded library "/opt/conda/envs/mfix-21.4/plugins/platforms/libqxcb.so"
loaded library "Xcursor"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/platformthemes" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platformthemes/libqxdgdesktopportal.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platformthemes/libqxdgdesktopportal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
    "MetaData": {
        "Keys": [
            "xdgdesktopportal",
            "flatpak",
            "snap"
        ]
    },
    "archreq": 0,
    "className": "QXdgDesktopPortalThemePlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("xdgdesktopportal", "flatpak", "snap")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/platformthemes" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/platforminputcontexts" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
    "MetaData": {
        "Keys": [
            "compose",
            "xim"
        ]
    },
    "archreq": 0,
    "className": "QComposePlatformInputContextPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("compose", "xim")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
    "MetaData": {
        "Keys": [
            "ibus"
        ]
    },
    "archreq": 0,
    "className": "QIbusPlatformInputContextPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("ibus")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
    "MetaData": {
        "Keys": [
            "qtvirtualkeyboard"
        ]
    },
    "archreq": 0,
    "className": "QVirtualKeyboardPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("qtvirtualkeyboard")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/platforminputcontexts" ...
loaded library "/opt/conda/envs/mfix-21.4/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/imageformats" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqgif.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqgif.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "gif"
        ],
        "MimeTypes": [
            "image/gif"
        ]
    },
    "archreq": 0,
    "className": "QGifPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("gif")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqicns.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqicns.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "icns"
        ],
        "MimeTypes": [
            "image/x-icns"
        ]
    },
    "archreq": 0,
    "className": "QICNSPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("icns")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqico.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqico.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "ico",
            "cur"
        ],
        "MimeTypes": [
            "image/vnd.microsoft.icon",
            "image/vnd.microsoft.icon"
        ]
    },
    "archreq": 0,
    "className": "QICOPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("ico", "cur")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqjpeg.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqjpeg.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "jpg",
            "jpeg"
        ],
        "MimeTypes": [
            "image/jpeg",
            "image/jpeg"
        ]
    },
    "archreq": 0,
    "className": "QJpegPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("jpg", "jpeg")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqsvg.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqsvg.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "svg",
            "svgz"
        ],
        "MimeTypes": [
            "image/svg+xml",
            "image/svg+xml-compressed"
        ]
    },
    "archreq": 0,
    "className": "QSvgPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("svg", "svgz")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqtga.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqtga.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "tga"
        ],
        "MimeTypes": [
            "image/x-tga"
        ]
    },
    "archreq": 0,
    "className": "QTgaPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("tga")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqtiff.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqtiff.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "tiff",
            "tif"
        ],
        "MimeTypes": [
            "image/tiff",
            "image/tiff"
        ]
    },
    "archreq": 0,
    "className": "QTiffPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("tiff", "tif")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqwbmp.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqwbmp.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "wbmp"
        ],
        "MimeTypes": [
            "image/vnd.wap.wbmp"
        ]
    },
    "archreq": 0,
    "className": "QWbmpPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("wbmp")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqwebp.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/imageformats/libqwebp.so, metadata=
{
    "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
    "MetaData": {
        "Keys": [
            "webp"
        ],
        "MimeTypes": [
            "image/webp"
        ]
    },
    "archreq": 0,
    "className": "QWebpPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("webp")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/imageformats" ...
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqgif.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqicns.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqico.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqjpeg.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqsvg.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqtga.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqtiff.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqwbmp.so"
loaded library "/opt/conda/envs/mfix-21.4/plugins/imageformats/libqwebp.so"
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/xcbglintegrations" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/xcbglintegrations/libqxcb-egl-integration.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/xcbglintegrations/libqxcb-egl-integration.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
    "MetaData": {
        "Keys": [
            "xcb_egl"
        ]
    },
    "archreq": 0,
    "className": "QXcbEglIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("xcb_egl")
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/xcbglintegrations/libqxcb-glx-integration.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
    "MetaData": {
        "Keys": [
            "xcb_glx"
        ]
    },
    "archreq": 0,
    "className": "QXcbGlxIntegrationPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("xcb_glx")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/xcbglintegrations" ...
loaded library "/opt/conda/envs/mfix-21.4/plugins/xcbglintegrations/libqxcb-glx-integration.so"
libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Disabling server's aux buffer support
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/accessible" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/accessible" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/plugins/iconengines" ...
QFactoryLoader::QFactoryLoader() looking at "/opt/conda/envs/mfix-21.4/plugins/iconengines/libqsvgicon.so"
Found metadata in lib /opt/conda/envs/mfix-21.4/plugins/iconengines/libqsvgicon.so, metadata=
{
    "IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
    "MetaData": {
        "Keys": [
            "svg",
            "svgz",
            "svg.gz"
        ]
    },
    "archreq": 0,
    "className": "QSvgIconPlugin",
    "debug": false,
    "version": 330752
}


Got keys from plugin meta data ("svg", "svgz", "svg.gz")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/conda/envs/mfix-21.4/bin/iconengines" ...
loaded library "/opt/conda/envs/mfix-21.4/plugins/iconengines/libqsvgicon.so"
libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
2022-04-21 21:00:40.364 (   3.307s) [        D56F7740]vtkXOpenGLRenderWindow.:651    ERR| vtkXOpenGLRenderWindow (0x5648c84bd070): Cannot create GLX context.  Aborting.
/tmp/tmpncasai8t: line 3:    24 Aborted                 mfix

What does glxinfo say?

docker run -it --rm --env="DISPLAY=host.docker.internal:0" --env="MESA_GL_VERSION_OVERRIDE=3.2" --env="MESA_GL_VERSION_OVERRIDE=3.2" --env="LIBGL_ALWAYS_INDIRECT=1"  --env="LIBGL_DEBUG=verbose" --env="QT_DEBUG_PLUGINS=1" mfix21.4 conda run -n mfix-21.4 glxinfo 
name of display: host.docker.internal:0
display: host.docker.internal:0  screen: 0
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_OML_swap_method, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, 
    GLX_SGI_make_current_read
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context, 
    GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_ATI_pixel_format_float, GLX_EXT_buffer_age, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_no_config_context, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_INTEL_swap_event, 
    GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent, 
    GLX_MESA_query_renderer, GLX_MESA_swap_control, GLX_NV_float_buffer, 
    GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel(R) UHD Graphics 630
OpenGL version string: 1.4 (2.1 INTEL-18.5.8)
OpenGL extensions:
    GL_APPLE_packed_pixels, GL_ARB_depth_texture, GL_ARB_draw_buffers, 
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, 
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow, 
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_filter_anisotropic, 
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, 
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_program, 
    GL_ARB_window_pos, GL_ATIX_texture_env_combine3, GL_ATI_draw_buffers, 
    GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, 
    GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, 
    GL_EXT_clip_volume_hint, GL_EXT_draw_range_elements, GL_EXT_fog_coord, 
    GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays, 
    GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_secondary_color, 
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, 
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, 
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_s3tc, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, 
    GL_EXT_texture_rectangle, GL_IBM_texture_mirrored_repeat, 
    GL_INGR_blend_func_separate, GL_NV_blend_square, GL_NV_depth_clamp, 
    GL_NV_fog_distance, GL_NV_light_max_exponent, GL_NV_texgen_reflection, 
    GL_NV_texture_rectangle, GL_SGIS_generate_mipmap, 
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, 
    GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

144 GLX Visuals

@cgw did you need to see the entire results of glxinfo? There was too much text to include here.

Yes please, pipe the output to a file and attach the file here. If it’s too big or rejected file type, zip it first.

glxinfo.txt (36.4 KB)

here it is in a file

Is there any other info/logs that could be helpful?

Thanks Robbie. I haven’t yet had time to go over this in detail.

Just an aside - have you tried running mfix with ‘vglrun’? I know some of our users who run MFiX remotely have to use that.

I’ll review the glxinfo output and get back to you about that. In the meanwhile if you are able to work out a solution on your own that would be great!

– Charles

I appreciate any time you spend on this as I’m just stuck.

That would require us installing VGL Server on a set of compute nodes, so no.

I’m trying, and it puzzles me that even in a Docker container I get these same errors. I’ve reported some issues on XQuartz to the Github but it doesn’t seem to be updated frequently with updates far a few in between.