-
Notifications
You must be signed in to change notification settings - Fork 73
Description
Version
7.2.0
Host OS Type
Linux
Host OS name + version
Arch Linux
Host Architecture
x86
Guest OS Type
all
Guest Architecture
x86
Guest OS name + version
No response
Component
Other
What happened?
If components of VirtualBox attempt to show error messages in the UINotificationCenter too early then VirtualBox crashes.
I was stuck with VirtualBox crashing on startup every time I opened it. After debugging it turns out I had last closed VirtualBox on the Network tab and so on startup it would attempt to load those UI components first.
UINetworkManagerWidget::loadCloudNetworks was having it's comVBox.isOk() return some error so it attempted to call cannotAcquireVirtualBoxParameter to display the error, except at this point in the startup process the UINotificationCenter hasn't been initialized all the way (the singleton for s_pInstance was still NULL) so instead it crashed with a NULL pointer de-ref.
While I was able to get out of the crash loop by making loadCloudNetworks return early and then closing on a different page, if UINotificationCenter isn't ready then UINotificationMessage should probably just print the error or something, or at least not crash.
Backtrace if desired:
Thread 1 "VirtualBox" received signal SIGSEGV, Segmentation fault.
0x00007ffff66873e8 in UINotificationCenter::append (this=this@entry=0x0, pObject=pObject@entry=0x5555583f9a10) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.cpp:218
218 AssertPtrReturn(m_pModel, QUuid());
(gdb) bt
#0 0x00007ffff66873e8 in UINotificationCenter::append (this=this@entry=0x0, pObject=pObject@entry=0x5555583f9a10) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.cpp:218
#1 0x00007ffff6699e01 in UINotificationMessage::createMessage (strName=..., strDetails=..., strInternalName=..., strHelpKeyword=..., pParent=<optimized out>)
at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp:1878
#2 UINotificationMessage::createMessage (strName=..., strDetails=..., strInternalName=..., strHelpKeyword=..., pParent=<optimized out>) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp:1860
#3 0x00007ffff669ec1e in UINotificationMessage::cannotAcquireVirtualBoxParameter (comVBox=..., pParent=pParent@entry=0x0) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp:620
#4 0x000055555571efbf in UINetworkManagerWidget::loadCloudNetworks (this=0x555555e5b880, this@entry=0x5555560ceb80) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/networkmanager/UINetworkManager.cpp:2319
#5 0x000055555571f1a0 in UINetworkManagerWidget::prepare (this=this@entry=0x5555560ceb80) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/networkmanager/UINetworkManager.cpp:1740
#6 0x000055555571f23d in UINetworkManagerWidget::UINetworkManagerWidget (this=0x5555560ceb80, this@entry=0x555555e5b880, enmEmbedding=enmEmbedding@entry=EmbedTo_Stack, pActionPool=<optimized out>, fShowToolbar=fShowToolbar@entry=false, pParent=pParent@entry=0x0)
at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/networkmanager/UINetworkManager.cpp:400
#7 0x000055555563f3a7 in UIToolPane::openTool (this=0x5555560ceb80, enmType=UIToolType_Network) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIToolPane.cpp:216
#8 0x0000555555635c54 in UIGlobalToolsWidget::switchToolTo (this=0x555555fa2e20, enmType=UIToolType_Network) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp:113
#9 0x0000555555635d12 in UIGlobalToolsWidget::sltHandleToolsMenuIndexChange (this=0x555555fa2e20, enmType=UIToolType_Network) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp:220
#10 0x00005555556373b4 in UIGlobalToolsWidget::loadSettings (this=0x555555fa2e20) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp:356
#11 UIGlobalToolsWidget::prepare (this=0x555555fa2e20) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp:256
#12 UIGlobalToolsWidget::UIGlobalToolsWidget (this=this@entry=0x555555fa2e20, pParent=pParent@entry=0x555555f47ff0, pActionPool=0x555555dc9420) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIGlobalToolsWidget.cpp:53
#13 0x000055555565fc26 in UIVirtualBoxWidget::prepareWidgets (this=0x555555f47ff0) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.h:127
#14 0x00005555556600ed in UIVirtualBoxWidget::prepare (this=0x555555f47ff0) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp:335
#15 UIVirtualBoxWidget::UIVirtualBoxWidget (this=this@entry=0x555555f47ff0, pParent=pParent@entry=0x555555aca910) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp:60
#16 0x0000555555653b30 in UIVirtualBoxManager::prepareWidgets (this=0x555555aca910) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp:2522
#17 UIVirtualBoxManager::prepare (this=0x555555aca910) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp:2414
#18 0x0000555555653e1c in UIVirtualBoxManager::create () at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp:573
#19 0x0000555555634f2f in UIStarter::sltStartUI (this=<optimized out>) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/globals/UIStarter.cpp:79
#20 0x00007ffff5bc0e34 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
#21 0x00007ffff4901c70 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7fffffffe100, e=0x555555e039a0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3303
#22 0x00007ffff5b68118 in QCoreApplication::notifyInternal2 (receiver=0x7fffffffe100, event=event@entry=0x555555e039a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#23 0x00007ffff5b684fb in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x555555e039a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5555558f4380) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1879
#25 0x00007ffff5e3fcf8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1733
#26 postEventSourceDispatch (s=0x5555558f3780) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#27 0x00007ffff370887d in g_main_dispatch (context=0x7fffe8000f70) at ../glib/glib/gmain.c:3398
#28 0x00007ffff3709cd7 in g_main_context_dispatch_unlocked (context=0x7fffe8000f70) at ../glib/glib/gmain.c:4249
#29 g_main_context_iterate_unlocked (context=context@entry=0x7fffe8000f70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314
#30 0x00007ffff3709ee5 in g_main_context_iteration (context=0x7fffe8000f70, may_block=1) at ../glib/glib/gmain.c:4379
#31 0x00007ffff5e3c5e2 in QEventDispatcherGlib::processEvents (this=0x555555997080, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#32 0x00007ffff5b744b6 in QEventLoop::processEvents (this=0x7fffffffdf40, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#33 QEventLoop::exec (this=0x7fffffffdf40, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#34 0x00007ffff5b6c7c1 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1449
#35 0x00007ffff48fc66a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2570
#36 0x000055555561144f in TrustedMain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/main.cpp:609
#37 0x000055555560b842 in main (argc=<optimized out>, argv=<optimized out>, envp=0x7fffffffe378) at /usr/src/debug/virtualbox/VirtualBox-7.2.0/src/VBox/Frontends/VirtualBox/src/main.cpp:801
How can we reproduce this?
Close VirtualBox on a tab that consistently shows a notification in the notification center when visited.
Attempting to re-open VirtualBox always causes a crash.
Did you upload all of your necessary log files, screenshots, etc.?
- Yes, I've uploaded all pertinent files to this issue.