VirtualBox

Opened 6 years ago

Last modified 5 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:

  1. apt uninstalling (with --purge) virtualbox* and re-installing. Same results.
  1. apt uninstalling (with --purge) virtualbox* and backleveling to v5.1. Same results.
  1. apt uninstalling (with --purge) virtualbox* and re-installing using the latest deb downloaded from your site rather than the artful repo. Same results.
  1. sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins /usr/lib/virtualbox/plugins (same results)
  1. sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms /usr/lib/virtualbox/platforms (same results)
  1. sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so /usr/lib/virtualbox/libqxcb.so (same results)
  1. Re-installed _all_ of the Qt5 libraries and rebooting. Same results.
  1. 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)

log.txt (112.5 KB ) - added by 3vi1J 6 years ago.
strace of startup
ldd_libqxcb.txt (4.8 KB ) - added by 3vi1J 6 years ago.
ldd of libqxcb.txt
verbose_ldd_libqxcb.txt (30.0 KB ) - added by 3vi1J 6 years ago.
ldd -v /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so

Download all attachments as: .zip

Change History (15)

by 3vi1J, 6 years ago

Attachment: log.txt added

strace of startup

by 3vi1J, 6 years ago

Attachment: ldd_libqxcb.txt added

ldd of libqxcb.txt

comment:1 by 3vi1J, 6 years ago

Maybe it's because the Qt libs in artful were update recently and there's some version mismatch?

comment:2 by 3vi1J, 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 3vi1J, 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.

Last edited 6 years ago by 3vi1J (previous) (diff)

by 3vi1J, 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 3vi1J, 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 3vi1J, 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.

comment:6 by pentagonik, 6 years ago

Just reproduced this here on my Ubuntu 17.10 as well.

comment:7 by pentagonik, 6 years ago

To work around the issue, start VirtualBox on the command line with:

LD_LIBRARY_PATH=. ./VirtualBox

in reply to:  7 comment:8 by 3vi1J, 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)
Last edited 6 years ago by 3vi1J (previous) (diff)

comment:9 by apsilva, 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
Last edited 6 years ago by apsilva (previous) (diff)

comment:10 by apsilva, 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.

in reply to:  10 comment:11 by 3vi1J, 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.

Last edited 6 years ago by 3vi1J (previous) (diff)

comment:12 by ferrabus, 5 years ago

This solved my problem:

sudo apt-get install --reinstall libqt5dbus5 libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a libdouble-conversion1 libxcb-xinerama0

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use