Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 633866 - app-emulation/virtualbox-5.1.28 UI breaks as soon as a VM is created or added built with QT 5.9.2
Summary: app-emulation/virtualbox-5.1.28 UI breaks as soon as a VM is created or added...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Lars Wendler (Polynomial-C) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-09 17:13 UTC by Edward Kigwana
Modified: 2018-10-31 15:57 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Edward Kigwana 2017-10-09 17:13:57 UTC
Worked with QT 5.7.1 after upgrade this is busted.

Qt FATAL: ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 0x0x26cba40. Receiver '' (of type 'UITaskMediumEnumeration') was created in thread 0x0x22e65d0", file kernel/qcoreapplication.cpp, line 563

Thread 18 "UIThreadWorker" received signal SIGABRT, Aborted.
[Switching to Thread 0x7f056bfff700 (LWP 19353)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007f05a1ed9930 in __GI_abort () at abort.c:89
#2  0x00007f059c86f657 in QMessageLogger::fatal(char const*, ...) const () from /usr/lib64/libQt5Core.so.5
#3  0x00007f059c86a4ea in qt_assert_x(char const*, char const*, char const*, int) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f059ca41686 in QCoreApplicationPrivate::checkReceiverThread(QObject*) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f0597aad848 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#6  0x00007f059ca41d07 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#7  0x00007f059ca77f2c in QObject::setProperty(char const*, QVariant const&) () from /usr/lib64/libQt5Core.so.5
#8  0x00007f059df826d0 in UITaskMediumEnumeration::run (this=0x24b7170)
    at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/medium/UIMediumEnumerator.cpp:65
#9  0x00007f059df5adca in UITask::start (this=0x24b7170)
    at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.cpp:298
#10 UIThreadWorker::run (this=0x26cba40)
    at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.cpp:322
#11 0x00007f059c8843d0 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5
#12 0x00007f05a245e867 in start_thread (arg=0x7f056bfff700) at pthread_create.c:456
#13 0x00007f05a1f9c9cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Comment 1 Edward Kigwana 2017-10-09 18:11:10 UTC
To quickly test this out I commented the offending line and discovered that this appears to be systemic.

Qt FATAL: ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 0x0x176e6f0. Receiver (of type 'UIGDetailsUpdateTaskGeneral') was created in thread 0x0x13c05d0", file kernel/qcoreapplication.cpp, line 563

Thread 18 "UIThreadWorker" received signal SIGABRT, Aborted. [Switching to Thread 0x7f09b68c0700 (LWP 24131)] GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1 0x00007f09ec520930 in GI_abort () at abort.c:89 #2 0x00007f09e2caa657 in QMessageLogger::fatal(char const*, ...) const () from /usr/lib64/libQt5Core.so.5 #3 0x00007f09e2ca54ea in qt_assert_x(char const*, char const*, char const*, int) () from /usr/lib64/libQt5Core.so.5 #4 0x00007f09e2e7c686 in QCoreApplicationPrivate::checkReceiverThread(QObject*) () from /usr/lib64/libQt5Core.so.5 #5 0x00007f09e21a0848 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #6 0x00007f09e2e7cd07 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 #7 0x00007f09e2eb2f2c in QObject::setProperty(char const*, QVariant const&) () from /usr/lib64/libQt5Core.so.5 #8 0x00007f09e868c78c in UIGDetailsUpdateTaskGeneral::run (this=0x1799ec0)

at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElements.cpp:278

#9 0x00007f09e85a2dba in UITask::start (this=0x1799ec0)

at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.cpp:298

#10 UIThreadWorker::run (this=0x176e6f0)

at /var/tmp/portage/app-emulation/virtualbox-5.1.28/work/VirtualBox-5.1.28/src/VBox/Frontends/VirtualBox/src/globals/UIThreadPool.cpp:322

#11 0x00007f09e2cbf3d0 in QThreadPrivate::start(void*) () from /usr/lib64/libQt5Core.so.5 #12 0x00007f09ecaa5867 in start_thread (arg=0x7f09b68c0700) at pthread_create.c:456 #13 0x00007f09ec5e39cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Comment 2 email200202 2017-10-11 07:18:32 UTC
Same problem here.

The problem is virtualbox for some reason does not present popcnt instruction to the guest even if it is supported on the host processor.

You can check this by looking at /proc/cpuinfo on the host and the guest.

qt 5.9.2 uses popcnt instruction in its main package dev-qt/qtcore

I think this new and qt 5.7.1 did not need it.

The workaround for now is to let gcc replace popcnt instruction by internal implementation.

Edit /etc/portage/make.conf and add -mno-popcnt flag 

CFLAGS="-O2 -pipe -march=nehalem -mtune=nehalem -mno-popcnt"
CXXFLAGS="${CFLAGS}"
CPPFLAGS="${CFLAGS}"

Re-emerge dev-qt/qtcore

emerge -av1 dev-qt/qtcore
Comment 3 Edward Kigwana 2017-10-11 14:36:26 UTC
The issue I am experiencing is that I can't even start the user interface, let alone boot a guest. I don't have this problem with any other QT program. I think it boils down to QT adding an assertion when attempting to modify data from another thread and whilst that may have been okay in the VirtualBox code, it is never a good idea.
Comment 4 Edward Kigwana 2017-10-11 15:57:57 UTC
I couldn't qemu to dynamically resize the vdi based disks so I was forced to try and figure something out with virtualbox. I created a basic machine and the UI crashed immediately. I was then able to use VBoxManage to start the vm and was prompted for an ISO. I provided one and was then able to boost the ISO after which I was able to add my vdi image. This is clearly just a front end VM manage UI issue.
Comment 5 email200202 2017-12-29 04:24:25 UTC
Since it is not the same problem, I will open another bug report.
Comment 6 Ben Kohler gentoo-dev 2018-10-31 15:57:44 UTC
Please reopen if this still affects 5.2.x