Opened 6 years ago
Last modified 6 years ago
#17425 new defect
Ubuntu 18.04 xcb not found... but found.
Reported by: | 3vi1J | Owned by: | |
---|---|---|---|
Component: | GUI | Version: | VirtualBox 5.2.4 |
Keywords: | xcb | Cc: | |
Guest type: | all | Host type: | Linux |
Description
Attempting to start virtualbox produces the following error:
08:56:19 evil@sager ~» virtualbox Qt FATAL: This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Reinstalling the application may fix this problem. Aborted (core dumped)
Oddly the message lists xcb as an available plugin.
Attempting to run VirtualBox as root, and to force the library path (P=/usr/lib/virtualbox; sudo LD_LIBRARY_PATH=$P:$P/plugins/platforms $P/VirtualBox) produces the same error as seen above.
Running ldd, there appear to be no missing dependencies for any of the virtualbox libraries or libqxc
09:06:47 evil@sager ~» ldd /usr/lib/virtualbox/*.so | grep not 09:06:50 evil@sager ~»
09:25:32 evil@sager ~» ldd /usr/lib/virtualbox/components/*.so | grep not 09:26:17 evil@sager ~»
09:04:44 evil@sager ~» ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so | grep not 09:05:44 evil@sager ~»
Only the extension pack VNC files, which I wouldn't think would be necessary to start the GUI show anything not found:
09:29:23 evil@sager ~» ldd /usr/lib/virtualbox/ExtensionPacks/VNC/linux.amd64/*.so | grep not
VBoxRT.so => not found VBoxRT.so => not found
09:29:40 evil@sager ~»
What I've tried:
- apt uninstalling (with --purge) virtualbox* and re-installing. Same results.
- apt uninstalling (with --purge) virtualbox* and backleveling to v5.1. Same results.
- apt uninstalling (with --purge) virtualbox* and re-installing using the latest deb downloaded from your site rather than the artful repo. Same results.
- sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins /usr/lib/virtualbox/plugins (same results)
- sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms /usr/lib/virtualbox/platforms (same results)
- sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so /usr/lib/virtualbox/libqxcb.so (same results)
- Re-installed _all_ of the Qt5 libraries and rebooting. Same results.
- Running a trace (I will attach it to the ticket). Line 1313 is where it loads libqxcb.so.
I'm not having any issues with any other Qt5 applications on this system - and even use it to develop Qt5 apps. Any help figuring this out would be appreciated.
Attachments (3)
Change History (15)
by , 6 years ago
comment:1 by , 6 years ago
Maybe it's because the Qt libs in artful were update recently and there's some version mismatch?
comment:2 by , 6 years ago
It certainly seems to be finding it... just not using it for some reason:
10:27:52 evil@sager /usr/lib/virtualbox» QT_DEBUG_PLUGINS=1 ./VirtualBox
...
Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so, metadata= {
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": {
"Keys": [
"xcb"
]
}, "className": "QXcbIntegrationPlugin", "debug": false, "version": 329987
}
Qt WARNING: QLibraryPrivate::loadPlugin failed on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so" : "Cannot load library /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so: " Qt FATAL: This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Reinstalling the application may fix this problem. Aborted (core dumped)
comment:3 by , 6 years ago
For a sanity check, I did some validation that other apps using xcb aren't having any issue.
Here's what I see when running VLC with qt debug:
...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so" Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so, metadata= {
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": {
"Keys": [
"xcb"
]
}, "className": "QXcbIntegrationPlugin", "debug": false, "version": 329987
}
Got keys from plugin meta data ("xcb") QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ... loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
...
It appears to be loading fine.
by , 6 years ago
Attachment: | verbose_ldd_libqxcb.txt added |
---|
ldd -v /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
comment:4 by , 6 years ago
There was an updated virtualbox package pushed out yesterday, but it continues to fail in the same manner as detailed above.
All other apps, like Wireshark, have no problems loading xcb:
... Got keys from plugin meta data ("xcb") QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ... loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so" loaded library "Xcursor" ...
Even Qt apps that I've redirected to use the system Qt platform plugins (like the EVE Online Launcher, so that launching links in an external browser works) work fine. It is only virtualbox (as default install, with no changes/redirection) showing this problem.
comment:5 by , 6 years ago
I saw ticket 16376 (https://www.virtualbox.org/ticket/16376), so did a "sudo apt install --reinstall libxkbcommon0 libxkbcommon-x11-0", to see if it had anything to do with my issue, but it did not change the symptoms.
I've even gone in and re-installed every installed app/library on this system and am still receiving the error that xcb can't be loaded, but only by virtualbox.
follow-up: 8 comment:7 by , 6 years ago
To work around the issue, start VirtualBox on the command line with:
LD_LIBRARY_PATH=. ./VirtualBox
comment:8 by , 6 years ago
Replying to pentagonik:
To work around the issue, start VirtualBox on the command line with:
LD_LIBRARY_PATH=. ./VirtualBox
Didn't seem to work around it for me on 18.04:
12:51:26 evil@sager /usr/bin» cd /usr/lib/virtualbox/ 12:51:42 evil@sager /usr/lib/virtualbox» LD_LIBRARY_PATH=. ./VirtualBox Qt FATAL: This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb. Reinstalling the application may fix this problem. Aborted (core dumped)
comment:9 by , 6 years ago
Do we have a solution for this?
I'm facing the same issue but in debian stretch.. i 've the following output.
#QT_DEBUG_PLUGINS=1 virtualbox Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "eglfs" ] }, "className": "QEglFSIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "linuxfb" ] }, "className": "QLinuxFbIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimal" ] }, "className": "QMinimalIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimalegl" ] }, "className": "QMinimalEglIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "offscreen" ] }, "className": "QOffscreenIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "xcb" ] }, "className": "QXcbIntegrationPlugin", "debug": false, "version": 329473 } Qt WARNING: QLibraryPrivate::loadPlugin failed on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so" : "Cannot load library /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so: " Qt FATAL: This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb. Reinstalling the application may fix this problem. Aborted
follow-up: 11 comment:10 by , 6 years ago
Hi,
If it help i end up installing without debian packages.
wget https://download.virtualbox.org/virtualbox/5.2.8/VirtualBox-5.2.8-121009-Linux_amd64.run chmod +x VirtualBox-5.2.8-121009-Linux_amd64.run sudo ./VirtualBox-5.2.8-121009-Linux_amd64.run
Ouput when running the new binary:
QT_DEBUG_PLUGINS=1 virtualbox Qt WARNING: Found metadata in lib /opt/VirtualBox/plugins/platforms/libqxcb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "xcb" ] }, "className": "QXcbIntegrationPlugin", "debug": false, "version": 329217 } Qt WARNING: Found metadata in lib /opt/VirtualBox/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata= { "IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5", "MetaData": { "Keys": [ "xcb_glx" ] }, "className": "QXcbGlxIntegrationPlugin", "debug": false, "version": 329217 }
Still don't get where is the error.. at least now i can continue using virtual box.
comment:11 by , 6 years ago
Replying to apsilva:
Hi,
If it help i end up installing without debian packages.
...
Still don't get where is the error.. at least now i can continue using virtual box.
Yes - this workaround works because it includes older versions of the libQt5* libraries, whereas the packaged version is only dependent on the latest ones in the distro.
Apparently, there is some breakage between the newest 5.9.x libraries and the older 5.6.1 version that Virtualbox was built against. I ended up working around it in the same manner you did (and forgot to report it here, doh).
I've only noticed this problem with one other Qt application: The native EVE Online launcher, though most people wouldn't notice it there because it also includes older libraries in the package. I only discovered it had the same problem because I usually delete those older Qt libraries after each update so that it will use the system versions, allowing URL launch integration to work as it should.
comment:12 by , 6 years ago
This solved my problem:
sudo apt-get install --reinstall libqt5dbus5 libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a libdouble-conversion1 libxcb-xinerama0
strace of startup