usnistgov / fipy

FiPy is a Finite Volume PDE solver written in Python
http://pages.nist.gov/fipy/en/latest
Other
504 stars 148 forks source link

Could not load the Qt platform plugin "xcb" #862

Closed guyer closed 2 years ago

guyer commented 2 years ago

linux CI spontaneously failing with:

Doctest: fipy.viewers.vtkViewer.vtkCellViewer.VTKCellViewer._test ... 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.

This worked at 2022-05-11T14:40:00Z and failed at 2022-05-11T23:01:00Z, with no explicit changes to installed packages or configuration.

guyer commented 2 years ago

https://forum.qt.io/topic/127696/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found/5 seems relevant

guyer commented 2 years ago

The changes in anaconda packages between pass and fail are

% Date: 2022-05-12 08:02:56 - 33 differences
%   /Users/guyer/Library/Preferences/Alpha-v9/tmp/Diff/ok.txt-temp
%   /Users/guyer/Library/Preferences/Alpha-v9/tmp/Diff/broken.txt-temp
% Options: ignoreSpaceChanges, ignoreWhiteSpace
% Use up and down arrows to move through differences, ⌃⌥-left and ⌃⌥-right to patch changes from one window to the other.
50c50
< ##[debug]/usr/bin/bash arg: /home/vsts/work/_temp/9b754976-4e45-4873-b018-86f17cd441a3.sh
---
> ##[debug]/usr/bin/bash arg: /home/vsts/work/_temp/7991d652-a025-49f7-9bb8-afee0871874e.sh

53,54c53,54
< ##[debug]   /home/vsts/work/_temp/9b754976-4e45-4873-b018-86f17cd441a3.sh
< [command]/usr/bin/bash /home/vsts/work/_temp/9b754976-4e45-4873-b018-86f17cd441a3.sh
---
> ##[debug]   /home/vsts/work/_temp/7991d652-a025-49f7-9bb8-afee0871874e.sh
> [command]/usr/bin/bash /home/vsts/work/_temp/7991d652-a025-49f7-9bb8-afee0871874e.sh

63a64
>   - attr=2.5.1=h166bdaf_0

78c79
<   - curl=7.83.0=h7bff187_0
---
>   - curl=7.83.1=h7bff187_0

82a84
>   - elfutils=0.186=he364ef2_0

85c87
<   - ffmpeg=4.4.1=hd7ab26d_2
---
>   - ffmpeg=4.4.1=h594f047_3

102d103
<   - glew=2.1.0=h9c3ff4c_2

111c112
<   - icu=69.1=h9c3ff4c_0
---
>   - icu=70.1=h27087fc_0

116a118
>   - jack=1.9.18=hfd4fe87_1001

118a121
>   - json-c=0.15=h98cffda_0

132a136
>   - libcap=2.51=h166bdaf_1

134,135c138,142
<   - libclang=13.0.1=default_hc23dcda_0
<   - libcurl=7.83.0=h7bff187_0
---
>   - libclang=14.0.3=default_h2e3cab8_0
>   - libclang13=14.0.3=default_h3a83d3e_0
>   - libcups=2.3.3=hf5a7f15_1
>   - libcurl=7.83.1=h7bff187_0
>   - libdb=6.2.32=h9c3ff4c_0

141a149
>   - libflac=1.3.4=h27087fc_0

150,152c158,161
<   - libllvm13=13.0.1=hf817b99_2
<   - libmamba=0.23.0=hd8a31e3_1
<   - libmambapy=0.23.0=py310hab0e683_1
---
>   - libllvm14=14.0.3=he0ac6c6_0
>   - libmamba=0.23.1=hd8a31e3_1
>   - libmambapy=0.23.1=py310hab0e683_1
>   - libmicrohttpd=0.9.75=h7f98852_0

162a172
>   - libsndfile=1.0.31=h9c3ff4c_1

167a178
>   - libtool=2.4.6=h9c3ff4c_1008

176c187
<   - libxml2=2.9.12=h885dcf4_1
---
>   - libxml2=2.9.14=h22db469_0

182c193
<   - mamba=0.23.0=py310hf87f941_1
---
>   - mamba=0.23.1=py310hf87f941_1

184a196
>   - mesalib=21.2.5=h0e4506f_3

215a228
>   - pulseaudio=14.0=hb166930_4

223,227c236,237
<   - pyqt=5.12.3=py310hff52083_8
<   - pyqt-impl=5.12.3=py310h1f8e252_8
<   - pyqt5-sip=4.19.18=py310h122e73d_8
<   - pyqtchart=5.12=py310hfcd6d55_8
<   - pyqtwebengine=5.12.1=py310hfcd6d55_8
---
>   - pyqt=5.15.4=py310hd8f1fbe_0
>   - pyqt5-sip=12.9.0=py310hd8f1fbe_0

232c242
<   - qt=5.12.9=h1304e3e_6
---
>   - qt-main=5.15.3=hf97cb25_1

242a253
>   - sip=6.5.1=py310h122e73d_2

251a263
>   - toml=0.10.2=pyhd8ed1ab_0

259c271
<   - vtk=9.1.0=qt_py310hf3393c1_207
---
>   - vtk=9.1.0=osmesa_py310h9b2d59d_107

262a275
>   - xorg-damageproto=1.2.1=h7f98852_1002

263a277
>   - xorg-glproto=1.4.17=h7f98852_1002

268a283
>   - xorg-libxdamage=1.1.5=h7f98852_1

272a288
>   - xorg-libxrandr=1.5.2=h7f98852_1

274a291
>   - xorg-randrproto=1.5.0=h7f98852_1001

275a293
>   - xorg-util-macros=1.19.3=h7f98852_0

276a295
>   - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002

291c310
< ##[section]Finishing: Environment
> ##[section]Finishing: Environment
guyer commented 2 years ago

Notable changes are:

223,227c236,237
<   - pyqt=5.12.3=py310hff52083_8
<   - pyqt-impl=5.12.3=py310h1f8e252_8
<   - pyqt5-sip=4.19.18=py310h122e73d_8
<   - pyqtchart=5.12=py310hfcd6d55_8
<   - pyqtwebengine=5.12.1=py310hfcd6d55_8
---
>   - pyqt=5.15.4=py310hd8f1fbe_0
>   - pyqt5-sip=12.9.0=py310hd8f1fbe_0

232c242
<   - qt=5.12.9=h1304e3e_6
---
>   - qt-main=5.15.3=hf97cb25_1

259c271
<   - vtk=9.1.0=qt_py310hf3393c1_207
---
>   - vtk=9.1.0=osmesa_py310h9b2d59d_107
guyer commented 2 years ago

With QT_DEBUG_PLUGINS set:

Doctest: fipy.viewers.vtkViewer.vtkCellViewer.VTKCellViewer._test ... QFactoryLoader::QFactoryLoader() checking directory path "/usr/share/miniconda/envs/myEnvironment/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/share/miniconda/envs/myEnvironment/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/share/miniconda/envs/myEnvironment/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "archreq": 0,
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 331520
}

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

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

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

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

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

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

Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/share/miniconda/envs/myEnvironment/bin/platforms" ...
Cannot load library /usr/share/miniconda/envs/myEnvironment/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/usr/share/miniconda/envs/myEnvironment/plugins/platforms/libqxcb.so" : "Cannot load library /usr/share/miniconda/envs/myEnvironment/plugins/platforms/libqxcb.so: (libxcb-icccm.so.4: cannot open shared object file: No such file or directory)"
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.
guyer commented 2 years ago

libxcb-icccm.so.4: cannot open shared object file: No such file or directory

guyer commented 2 years ago

A new conda-forge build of pyqt for linux dropped around 2022-05-11T16:30:00Z, between our pass and fail. Triggered by conda-forge/pyqt-feedstock#107.

guyer commented 2 years ago

This issue (and fix) is documented by conda-forge.