Community Forum

Forum Navigation
You need to log in to create posts and topics.

XCB bug under Linux

We are having issues running the dataflow modeller on Fedora/Arch linux. Using the following command to run dfm:

 QT_DEBUG_PLUGINS=1 ./run.sh

We get the following error:

QFactoryLoader::QFactoryLoader() checking directory path "/home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so"
Found metadata in lib /home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 329473
}


Got keys from plugin meta data ("xcb")
Cannot load library /home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so: (/home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so: undefined symbol: _ZTI26QPlatformIntegrationPlugin, version Qt_5)
QLibraryPrivate::loadPlugin failed on "/home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so" : "Cannot load library /home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so: (/home/stephan/Documents/Studie/Year 3/Q2/2IMN25 - Quantitative Evaluation of Embedded Systems/Assignment5/dfm.linux/platforms/libqxcb.so: undefined symbol: _ZTI26QPlatformIntegrationPlugin, version Qt_5)"
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: xcb.

Renaming the shipped Qt libraries (which in my opinion is a bit ugly for Linux) such that the application uses the system Qt libraries did not help either as we get the following error message:

././dfm: symbol lookup error: ././dfm: undefined symbol: _ZdlPvm, version Qt_5

Which seems to be an error comming from incompatible libstdc++ versions (there seem to be some problems with sized dealocations https://stackoverflow.com/questions/53022608/application-crashes-with-symbol-zdlpvm-version-qt-5-not-defined-in-file-libqt (Links to an external site.))

For what reason are you using QT_DEBUG_PLUGINS=1? I think this will not work as the provided version is a release version that does not provide debuggability

As to give more information why it will not run in the first place when executing

./run.sh

The crash comes from the xcb platform plugin and hence the debug plugins variable can be set to debug issues with that plugin.If I execute the script without the QT_DEBUG_PLUGINS variable it crashes with the following (less descriptive message):

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: xcb.

./run.sh: line 2: 155373 Aborted (core dumped) LD_LIBRARY_PATH=$(dirname $0)/lib:$LD_LIBRARY_PATH ./$(dirname $0)/dfm

I'am not sure on what distro the linux distribution is tested, but I have a hunch that this bug might be related to X11 vs Wayland (which is the default on Fedora nowadays).

It was tested for several distributions but not the latest Fedora: it will probably only work for X11. I will have a try myself to see what can be done

I investigated the observed problem a bit further. It seems to relate to the fact of using the Qt-framework for libraries and plugins from the main dfm executable.

Edit: The actual problem has now been solved, see further down this thread

For me both the linux and fedora versions don't work but I'm now using the earlier version (0.1.0) which works. So no need to have it fixed for me, but just for information I'll post my details here as well, maybe it is useful.

Platform is Ubuntu 18.04 LTS.

With dfm.fedora 0.3.0:

dfm.fedora$ ./run.sh
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: xcb.

Aborted (core dumped)

With dfm.linux 0.3.0:

dfm.linux$ ./run.sh
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: xcb.

Aborted (core dumped)

That's surprising: Ubuntu 18.04 LTS is used as the primary platform for developing DFM.

Did you install a different display server on your Ubuntu 18.04 LTS than the standard Xorg?

Note that version 0.1.0 does not have the model debugger/simulator that is introduced in version 0.3.0

I should've probably mentioned that I'm actually running Pop!_OS instead of Ubuntu 18.04 LTS. I run that one because my laptop has hybrid nvidia graphics (nvidia-prime) and the Nvidia graphics card works out of the box with this distribution.  It is based on Ubuntu 18.04 LTS but might have some differences in display server, although it should run Xorg. If I've time I'll try some more, but probably just stick to my other group members on Windows.

This shows Xorg running:

$ ps -e | grep tty2
1630 tty2 00:00:00 gdm-x-session
1632 tty2 00:03:21 Xorg
1638 tty2 00:00:00 gnome-session-b
1776 tty2 00:03:31 gnome-shell
1808 tty2 00:00:09 ibus-daemon
1812 tty2 00:00:00 ibus-dconf
1814 tty2 00:00:00 ibus-x11

That makes a difference: I just tried Pop!_OS 18.04 LTS (intel graphics) and I got the same results as you...

However, it helped me a lot in actually solving the real problem. I have uploaded a new linux package at https://modeltech.org/download/dfm.linux.zip This version has been tested to work for all distributions discussed in this thread, including fedora. This also means that the temporary fedora downloadable will be removed.

Thank you very much, it works perfectly now 🙂