VirtualBox

Ticket #7909 (closed defect: duplicate)

Opened 3 years ago

Last modified 3 years ago

SIGSEGV in UI when opening settings dialog

Reported by: csbac Owned by:
Priority: major Component: GUI
Version: VirtualBox 4.0.0 Keywords: settings
Cc: Guest type: other
Host type: Linux

Description

Linux X64, virtualbox-4.0.0-8.1.x86_64 (opensuse build service)

When opening the Settings for any virtual machine, the ui crashes.

This happened now and then in the beta versions of 4.0.0, and always now in the final. It appeared the first time after I changed a virtual machine from PIIX4 to ICH9, though this may be unrelated.

This is the opensuse build service version, I will try again with the official release.

opensuse 11.3 x64 with KDE 4.5.4:

  • kdebase4-4.5.4-2.8
  • libqt4-4.6.3-8.3

Stacktrace (gdb):

Program received signal SIGSEGV, Segmentation fault.
qobject_cast<QWidget*> (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:905
905     ../../src/gui/kernel/qwidget.h: Datei oder Verzeichnis nicht gefunden.
        in ../../src/gui/kernel/qwidget.h
(gdb) where
#0  qobject_cast<QWidget*> (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:905
#1  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7518
#2  0x00007f85329f8d5f in QWidgetPrivate::show_helper (this=0x7e6e80) at kernel/qwidget.cpp:7169
#3  0x00007f85329f93aa in QWidget::setVisible (this=0x880010, visible=<value optimized out>) at kernel/qwidget.cpp:7444
#4  0x00007f85329f91e6 in show (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:485
#5  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7532
#6  0x00007f85329f8d5f in QWidgetPrivate::show_helper (this=0x780df0) at kernel/qwidget.cpp:7169
#7  0x00007f85329f93aa in QWidget::setVisible (this=0x82e5c0, visible=<value optimized out>) at kernel/qwidget.cpp:7444
#8  0x00007f8534f41c4c in QIMainDialog::setVisible (this=0x7fff64b4c5b0, aVisible=176)
    at /usr/src/debug/VirtualBox-4.0.0_OSE/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp:131
#9  0x00007f8534f41dec in show (this=0x82e5c0) at /usr/include/QtGui/qwidget.h:485
#10 QIMainDialog::exec (this=0x82e5c0) at /usr/src/debug/VirtualBox-4.0.0_OSE/src/VBox/Frontends/VirtualBox/src/extensions/QIMainDialog.cpp:62
#11 0x00007f853502f521 in VBoxSelectorWnd::vmSettings (this=0x712940, aCategory=<value optimized out>, aControl=<value optimized out>, 
    aUuid=<value optimized out>) at /usr/src/debug/VirtualBox-4.0.0_OSE/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp:734
#12 0x00007f85350f2765 in VBoxSelectorWnd::qt_metacall (this=0x712940, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
    at /usr/src/debug/VirtualBox-4.0.0_OSE/out/linux.amd64/release/obj/VirtualBox/qtmoc/VBoxSelectorWnd.cpp:184
#13 0x00007f85335c9509 in QObject::event (this=0x712940, e=0xa1d4b0) at kernel/qobject.cpp:1248
#14 0x00007f85329f976d in QWidget::event (this=0x712940, event=0xa1d4b0) at kernel/qwidget.cpp:8501
#15 0x00007f8532da5a6b in QMainWindow::event (this=0x712940, event=0xa1d4b0) at widgets/qmainwindow.cpp:1414
#16 0x00007f853502c28e in VBoxSelectorWnd::event (this=0x712940, e=0xa1d4b0)
    at /usr/src/debug/VirtualBox-4.0.0_OSE/src/VBox/Frontends/VirtualBox/src/selector/VBoxSelectorWnd.cpp:1118
#17 0x00007f85329a94d4 in QApplicationPrivate::notify_helper (this=0x648010, receiver=0x712940, e=0xa1d4b0) at kernel/qapplication.cpp:4302
#18 0x00007f85329b1aca in QApplication::notify (this=<value optimized out>, receiver=0x712940, e=0xa1d4b0) at kernel/qapplication.cpp:4185
#19 0x00007f85335b7e4c in QCoreApplication::notifyInternal (this=0x7fff64b4dab0, receiver=0x712940, event=0xa1d4b0) at kernel/qcoreapplication.cpp:726
#20 0x00007f85335bb5ba in sendEvent (receiver=0x0, event_type=0, data=0x648190) at kernel/qcoreapplication.h:215
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x648190) at kernel/qcoreapplication.cpp:1367
#22 0x00007f85335e0173 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220
#23 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#24 0x00007f852f3b4a93 in g_main_dispatch (context=0x651120) at gmain.c:1960
#25 IA__g_main_context_dispatch (context=0x651120) at gmain.c:2513
#26 0x00007f852f3b5270 in g_main_context_iterate (context=0x651120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2591
#27 0x00007f852f3b5510 in IA__g_main_context_iteration (context=0x651120, may_block=1) at gmain.c:2654
#28 0x00007f85335e067f in QEventDispatcherGlib::processEvents (this=0x6129c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#29 0x00007f8532a4a14e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
#30 0x00007f85335b7292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#31 0x00007f85335b7495 in QEventLoop::exec (this=0x7fff64b4d8f0, flags=...) at kernel/qeventloop.cpp:201
#32 0x00007f85335bb88b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#33 0x00007f8534eaf526 in TrustedMain (argc=1, argv=<value optimized out>) at /usr/src/debug/VirtualBox-4.0.0_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp:545
#34 0x00007f8538b64b7d in __libc_start_main (main=0x4013d0 <main(int, char**, char**)>, argc=1, ubp_av=0x7fff64b4ddf8, init=<value optimized out>, 
    fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff64b4dde8) at libc-start.c:226
#35 0x0000000000401309 in _start () at ../sysdeps/x86_64/elf/start.S:113

Change History

comment:1 Changed 3 years ago by csbac

Crash happens identically with Oracle release.
VirtualBox-4.0-4.0.0_69151_openSUSE113-1.x86_64.rpm

Less debug information, of course.

Program received signal SIGSEGV, Segmentation fault.
qobject_cast<QWidget*> (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:905
905     ../../src/gui/kernel/qwidget.h: Datei oder Verzeichnis nicht gefunden.
        in ../../src/gui/kernel/qwidget.h
(gdb) where
#0  qobject_cast<QWidget*> (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:905
#1  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7518
#2  0x00007f86917c3d5f in QWidgetPrivate::show_helper (this=0x7f868022f490) at kernel/qwidget.cpp:7169
#3  0x00007f86917c43aa in QWidget::setVisible (this=0x7f868021c220, visible=<value optimized out>) at kernel/qwidget.cpp:7444
#4  0x00007f86917c41e6 in show (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:485
#5  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7532
#6  0x00007f86917c3d5f in QWidgetPrivate::show_helper (this=0xa558d0) at kernel/qwidget.cpp:7169
#7  0x00007f86917c43aa in QWidget::setVisible (this=0x9871d0, visible=<value optimized out>) at kernel/qwidget.cpp:7444
#8  0x00007f8693cf93fc in ?? () from /usr/lib/virtualbox/VirtualBox.so
#9  0x00007f8693cf921c in ?? () from /usr/lib/virtualbox/VirtualBox.so
#10 0x00007f8693dd2501 in ?? () from /usr/lib/virtualbox/VirtualBox.so
#11 0x00007f8693e84f79 in ?? () from /usr/lib/virtualbox/VirtualBox.so
#12 0x00007f8692394509 in QObject::event (this=0x7f86800091a0, e=0x7f8680205b70) at kernel/qobject.cpp:1248
#13 0x00007f86917c476d in QWidget::event (this=0x7f86800091a0, event=0x7f8680205b70) at kernel/qwidget.cpp:8501
#14 0x00007f8691b70a6b in QMainWindow::event (this=0x7f86800091a0, event=0x7f8680205b70) at widgets/qmainwindow.cpp:1414
#15 0x00007f8693dcf8ee in ?? () from /usr/lib/virtualbox/VirtualBox.so
#16 0x00007f86917744d4 in QApplicationPrivate::notify_helper (this=0x64a800, receiver=0x7f86800091a0, e=0x7f8680205b70) at kernel/qapplication.cpp:4302
#17 0x00007f869177caca in QApplication::notify (this=<value optimized out>, receiver=0x7f86800091a0, e=0x7f8680205b70) at kernel/qapplication.cpp:4185
#18 0x00007f8692382e4c in QCoreApplication::notifyInternal (this=0x7fffa43611a0, receiver=0x7f86800091a0, event=0x7f8680205b70) at kernel/qcoreapplication.cpp:726
#19 0x00007f86923865ba in sendEvent (receiver=0x0, event_type=0, data=0x64a980) at kernel/qcoreapplication.h:215
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x64a980) at kernel/qcoreapplication.cpp:1367
#21 0x00007f86923ab173 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220
#22 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#23 0x00007f868e187a93 in g_main_dispatch (context=0x653920) at gmain.c:1960
#24 IA__g_main_context_dispatch (context=0x653920) at gmain.c:2513
#25 0x00007f868e188270 in g_main_context_iterate (context=0x653920, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2591
#26 0x00007f868e188510 in IA__g_main_context_iteration (context=0x653920, may_block=1) at gmain.c:2654
#27 0x00007f86923ab67f in QEventDispatcherGlib::processEvents (this=0x6151d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#28 0x00007f869181514e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
#29 0x00007f8692382292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#30 0x00007f8692382495 in QEventLoop::exec (this=0x7fffa4361000, flags=...) at kernel/qeventloop.cpp:201
#31 0x00007f869238688b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#32 0x00007f8693c76371 in TrustedMain () from /usr/lib/virtualbox/VirtualBox.so
#33 0x00007f8697bbab7d in __libc_start_main (main=0x401330, argc=1, ubp_av=0x7fffa43614d8, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fffa43614c8) at libc-start.c:226
#34 0x0000000000401269 in ?? ()
#35 0x00007fffa43614c8 in ?? ()
#36 0x000000000000001c in ?? ()
#37 0x0000000000000001 in ?? ()
#38 0x00007fffa4361aca in ?? ()
#39 0x0000000000000000 in ?? ()

comment:2 Changed 3 years ago by frank

  • Status changed from new to closed
  • Resolution set to duplicate

Duplicate of #7815.

comment:3 Changed 3 years ago by csbac

  • Status changed from closed to reopened
  • Resolution duplicate deleted

Sorry,
but I do not believe the "duplicate" concerns this problem.
I am talking about configuring virtual machines that are powered down, and not running, stopped or saved ones.

#7815 is a feature request/enhancement, this is a bug.

comment:4 Changed 3 years ago by csbac

With libqt4-debugsource.

The QObject* that is tried to be casted there is only "0x817550" which does not look like a usual 64bit ptr ..

Program received signal SIGSEGV, Segmentation fault.
qobject_cast<QWidget*> (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:905
905         if (!o || !o->isWidgetType()) return 0;
(gdb) 
(gdb) l
900         return (QWidget*)(o);
901     }
902     #else
903     template <> inline QWidget *qobject_cast<QWidget*>(QObject *o)
904     {
905         if (!o || !o->isWidgetType()) return 0;
906         return static_cast<QWidget*>(o);
907     }
908     template <> inline const QWidget *qobject_cast<const QWidget*>(const QObject *o)
909     {
(gdb) p o
$1 = (QObject *) 0x817550
(gdb) p *o
$2 = {_vptr.QObject = 0x3, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7f7a1cbcd8e0 "QObject", data = 0x7f7a1cbcd980, extradata = 
    0x7f7a1ce371d0}}, d_ptr = {d = 0x0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7f7a1cbd6580 "Qt", data = 0x7f7a1cbd9be0, extradata = 
    0x0}}}
(gdb) print sizeof(o)
$3 = 8

(gdb) up
#1  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7518
7518            QWidget *widget = qobject_cast<QWidget*>(childList.at(i));
(gdb) l
7513
7514    void QWidgetPrivate::showChildren(bool spontaneous)
7515    {
7516        QList<QObject*> childList = children;
7517        for (int i = 0; i < childList.size(); ++i) {
7518            QWidget *widget = qobject_cast<QWidget*>(childList.at(i));
7519            if (!widget
7520                || widget->isWindow()
7521                || widget->testAttribute(Qt::WA_WState_Hidden))
7522                continue;


(gdb) up
#2  0x00007f7a1bf6cd5f in QWidgetPrivate::show_helper (this=0x7f7a0805de00) at kernel/qwidget.cpp:7169
7169        showChildren(false);
(gdb) l
7164
7165        // become visible before showing all children
7166        q->setAttribute(Qt::WA_WState_Visible);
7167
7168        // finally show all children recursively
7169        showChildren(false);
7170
7171    #ifdef QT3_SUPPORT
7172        if (q->parentWidget() && sendChildEvents)
7173            QApplication::sendPostedEvents(q->parentWidget(),
(gdb) p this
$8 = (QWidgetPrivate * const) 0x7f7a0805de00

(gdb) up
#3  0x00007f7a1bf6d3aa in QWidget::setVisible (this=0x7f7a0805ca60, visible=<value optimized out>) at kernel/qwidget.cpp:7444
7444                d->show_helper();
(gdb) l
7439
7440            if (isWindow() || parentWidget()->isVisible()) {
7441                // remove posted quit events when showing a new window
7442                QCoreApplication::removePostedEvents(qApp, QEvent::Quit);
7443
7444                d->show_helper();
7445
7446    #if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined (Q_WS_QWS)
7447                qApp->d_func()->sendSyntheticEnterLeave(this);
7448    #endif

(gdb) up
#4  0x00007f7a1bf6d1e6 in show (this=<value optimized out>, spontaneous=false) at ../../src/gui/kernel/qwidget.h:485
485         inline void show() { setVisible(true); }
(gdb) l
480         // Widget management functions
481
482         virtual void setVisible(bool visible);
483         inline void setHidden(bool hidden) { setVisible(!hidden); }
484     #ifndef Q_WS_WINCE
485         inline void show() { setVisible(true); }
486     #else
487         void show();
488     #endif
489         inline void hide() { setVisible(false); }

...
#5  QWidgetPrivate::showChildren (this=<value optimized out>, spontaneous=false) at kernel/qwidget.cpp:7532
#6  0x00007f7a1bf6cd5f in QWidgetPrivate::show_helper (this=0x7f7a0806e150) at kernel/qwidget.cpp:7169
#7  0x00007f7a1bf6d3aa in QWidget::setVisible (this=0x829eb0, visible=<value optimized out>) at kernel/qwidget.cpp:7444
#8  0x00007f7a1e4a23fc in ?? () from /usr/lib/virtualbox/VirtualB

comment:5 Changed 3 years ago by Victor Marin

Hello,

The settings dialog suddenly closing, it happens also to me in the new Virtualbox v4.0.

Indeed the settings UI it does not open at all and, in my case, it makes the main program then also closing.

I just uninstalled the "old" (but very good, without noticed fails) v3.2 Virtualbox version, for installing the new v4.0.

It happens each and every time I try to open the settings dialog. In a nutshell, I cannot change settings anymore.

Hardware: Laptop HP 6735b, ZM80, HD3200, 4GB. Software: Kubuntu 10.10 x64, KDE 4.5.4.

comment:6 Changed 3 years ago by frank

  • Status changed from reopened to closed
  • Resolution set to duplicate

Actually this is a duplicate of #7875.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use