[vbox-dev] [ PATCH] Fix crash on startup under Wayland
Hans de Goede
hdegoede at redhat.com
Tue Apr 7 12:48:00 GMT 2020
Hi,
On 4/7/20 2:29 PM, Frank Batschulat wrote:
> Isn't that just working around the following bug?
>
> Ticket #19357 (accepted defect)
> VBoxClient crashes on Luuntu 14.04 after updating from 6.1.2 to 6.1.4
> https://www.virtualbox.org/ticket/19357
No that is a different bug, this is about "VirtualBox" (the
hypervisor managing UI) crashing on startup when started
from a Fedora 32 GNOME3 (Wayland) session.
That bug is about VBoxClient, which is part of the guest additions
crashing.
IOW this fixes a hypervisor (UI) crash, the ticket you are
pointing to fixes a guest (additions) crash. So very much a
different thing.
Also note that I have provided a patch fixing the
guest (additions) crash. in the ticket you linked to
5 weeks ago.
As for this being a workaround, VirtualBox makes calls
to QX11Info functions in various places, a quick grep shows:
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIKeyboardHandler.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxX11Helper.cpp
VirtualBox-6.1.4/src/VBox/Frontends/VirtualBox/src/widgets/UIHostComboEditor.cpp
And the most called function is QX11Info::display() and the
resulting X11 Display is then used to make a whole lot of
direct Xlib calls in various places.
IOW the assumption that the X11 QT backend / X11 windows are used
under Linux is deeply embedded inside the VirtualBox code. So yes this
is a workaround but properly fixing this will take a significant
(huge even) amount of effort.
Regards,
Hans
>
>
> On Tue, 07 Apr 2020 14:00:47 +0200, Hans de Goede <hdegoede at redhat.com> wrote:
>
>> I noticed that with a default Fedora 32 workstation install (default GNOME3 on
>> Wayland session) VirtualBox crashes immediately at startup. The problem is that
>> QT5 now defaults to the Wayland backend and VirtualBox assumes the X11 backend
>> is used and makes a bunch of unchecked X11 calls which cause NULL pointer derefs.
>>
>> The attached patch is a simple fix which fixes this by setting the QT backend
>> back to X11.
>>
>> As usual, the patch is released under the MIT license.
>>
>> Regards,
>>
>> Hans
>
>
More information about the vbox-dev
mailing list