Skip to content

Fix crashes when running with QML disabled in VR#971

Merged
HifiExperiments merged 8 commits intovircadia:masterfrom
HifiExperiments:apitraceFix
Feb 2, 2021
Merged

Fix crashes when running with QML disabled in VR#971
HifiExperiments merged 8 commits intovircadia:masterfrom
HifiExperiments:apitraceFix

Conversation

@HifiExperiments
Copy link
Contributor

fixes #810
fixes #811

Test plan:

  • No change to normal builds
  • If you build manually with QML disabled, run, and switch to VR, you should no longer crash

@HifiExperiments HifiExperiments added VR Virtual Reality Severity: Low No important functionality is affected needs testing (QA) The PR is ready for testing bugfix needs CR (code review) labels Jan 18, 2021
void OffscreenUi::hideDesktopWindows() {
if (QThread::currentThread() != thread()) {
BLOCKING_INVOKE_METHOD(this, "hideDesktopWindows");
if (_desktop) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

both crashes happens because when QML is disabled, we don't initialize _desktop

@JulianGro
Copy link
Contributor

The crash still happens to me:
vircadia-log.txt

(gdb) bt
#0  0x00007fffedfce9c4 in hifi::qml::OffscreenSurface::getRootItem() (this=0x0) at /home/motofckr9k/Vircadia/source/libraries/qml/src/qml/OffscreenSurface.cpp:120
#1  0x00007fffef1a339c in OffscreenUi::isVisible(QString const&) (this=0x0, name=...) at /home/motofckr9k/Vircadia/source/libraries/ui/src/OffscreenUi.cpp:234
#2  0x00007fffef1e713c in TabletProxy::setToolbarMode(bool) (this=0x5555682a64f0, toolbarMode=false) at /home/motofckr9k/Vircadia/source/libraries/ui/src/ui/TabletScriptingInterface.cpp:394
#3  0x00007fffef1e5854 in TabletScriptingInterface::setToolbarMode(bool) (this=0x5555593a4e90, toolbarMode=false) at /home/motofckr9k/Vircadia/source/libraries/ui/src/ui/TabletScriptingInterface.cpp:224
#4  0x0000555555b14390 in Application::updateSystemTabletMode() (this=0x7fffffffacb0) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:9453
#5  0x0000555555bcc658 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Application::*)()>::call(void (Application::*)(), Application*, void**) (f=(void (Application::*)(Application * const)) 0x555555b14296 <Application::updateSystemTabletMode()>, o=0x7fffffffacb0, arg=0x7fffffff9e30) at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:152
#6  0x0000555555bbf1ae in QtPrivate::FunctionPointer<void (Application::*)()>::call<QtPrivate::List<>, void>(void (Application::*)(), Application*, void**) (f=(void (Application::*)(Application * const)) 0x555555b14296 <Application::updateSystemTabletMode()>, o=0x7fffffffacb0, arg=0x7fffffff9e30)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:185
#7  0x0000555555ba7bd6 in QtPrivate::QSlotObject<void (Application::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555559717bb0, r=0x7fffffffacb0, a=0x7fffffff9e30, ret=0x0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:414
#8  0x00007fffeadf085f in QMetaObject::activate(QObject*, int, int, void**) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#9  0x00005555560ed595 in Application::activeDisplayPluginChanged() (this=0x7fffffffacb0) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/UVLADIE3JM/moc_Application.cpp:1038
#10 0x0000555555b11603 in Application::setDisplayPlugin(std::shared_ptr<DisplayPlugin>) (this=0x7fffffffacb0, newDisplayPlugin=std::shared_ptr<DisplayPlugin> (use count 7, weak count 0) = {...}) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:9092
#11 0x0000555555b139fc in Application::setActiveDisplayPlugin(QString const&) (this=0x7fffffffacb0, pluginName=...) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:9364
#12 0x0000555555b11b88 in Application::switchDisplayMode() (this=0x7fffffffacb0) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:9128
#13 0x00005555560ec54e in Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x7fffffffacb0, _c=QMetaObject::InvokeMetaMethod, _id=131, _a=0x7fffffffa3f0) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/UVLADIE3JM/moc_Application.cpp:815
#14 0x00007fffeadf0745 in QMetaObject::activate(QObject*, int, int, void**) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#15 0x00007fffeadfd627 in QTimer::timeout(QTimer::QPrivateSignal) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#16 0x00007fffeadfd988 in QTimer::timerEvent(QTimerEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#17 0x00007fffeadf126b in QObject::event(QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#18 0x00007fffeb8a1e6c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#19 0x00007fffeb8a9450 in QApplication::notify(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#20 0x0000555555ae9e4b in Application::notify(QObject*, QEvent*) (this=0x7fffffffacb0, object=0x55555b5c8810, event=0x7fffffffa7e0) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:4234
#21 0x00007fffeadc0b48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#22 0x00007fffeae1d0e9 in QTimerInfoList::activateTimers() () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#23 0x00007fffeae1d8e9 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#24 0x00007fffe0f88417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fffe0f88650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fffe0f886dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffeae1dc7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#28 0x00007fffeadbed9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#29 0x00007fffeadc7fa0 in QCoreApplication::exec() () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#30 0x0000555555e00aab in main(int, char const**) (argc=1, argv=0x7fffffffda58) at /home/motofckr9k/Vircadia/source/interface/src/main.cpp:448
(gdb) 

@HifiExperiments HifiExperiments added the rebuild rebuild through the GithubActions label Jan 20, 2021
@HifiExperiments HifiExperiments added rebuild rebuild through the GithubActions and removed rebuild rebuild through the GithubActions labels Jan 20, 2021
@JulianGro
Copy link
Contributor

It gets further now (I see the world loading and maybe even finish loading in the SteamVR preview window) but still crashes:

vircadia-log.txt

(gdb) bt
#0  0x00007fffef1a3014 in OffscreenUi::isPointOnDesktopWindow(QVariant) (this=0x0, point=...) at /home/motofckr9k/Vircadia/source/libraries/ui/src/OffscreenUi.cpp:213
#1  0x0000555555f517c7 in WindowScriptingInterface::isPointOnDesktopWindow(QVariant) (this=0x5555593ae840, point=...) at /home/motofckr9k/Vircadia/source/interface/src/scripting/WindowScriptingInterface.cpp:204
#2  0x0000555556111d5d in WindowScriptingInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5555593ae840, _c=QMetaObject::InvokeMetaMethod, _id=86, _a=0x7ffe0f7fb970) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/SZBG4JW7DO/moc_WindowScriptingInterface.cpp:562
#3  0x00005555561137ab in WindowScriptingInterface::qt_metacall(QMetaObject::Call, int, void**) (this=0x5555593ae840, _c=QMetaObject::InvokeMetaMethod, _id=86, _a=0x7ffe0f7fb970) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/SZBG4JW7DO/moc_WindowScriptingInterface.cpp:800
#4  0x00007fffec153c8a in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#5  0x00007fffec14d7e7 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#6  0x00007fffec14e27e in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#7  0x00007fffec14e4b2 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#8  0x00007fffec05a028 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#9  0x00007fffec0307f5 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#10 0x00007fff042b6ea0 in  ()
#11 0x00007ffe0f7fbf40 in  ()
#12 0x00007ffe16282e40 in  ()
#13 0x00007ffe00000010 in  ()
#14 0xffff000000000002 in  ()
#15 0x00007ffd00000003 in  ()
#16 0x0000555500000010 in  ()
#17 0x00007ffe0f7fbf60 in  ()
#18 0x0000555555b7ff5c in QSharedPointer<ScriptEngines>::deref() (this=0x7fffec1cbdc8) at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qsharedpointer_impl.h:460
#19 0x00007fffebfe7779 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#20 0x00007fffec082b5d in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#21 0x00007fffec13b919 in QScriptValue::call(QScriptValue const&, QList<QScriptValue> const&) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#22 0x00007ffff4517b76 in ScriptEngine::<lambda()>::operator()(void) const (__closure=0x7ffd84087720) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2785
#23 0x00007ffff451bb14 in std::_Function_handler<void(), ScriptEngine::callWithEnvironment(const EntityItemID&, const QUrl&, QScriptValue, QScriptValue, QScriptValueList)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
#24 0x0000555555b486e0 in std::function<void ()>::operator()() const (this=0x7ffe0f7fc2c0) at /usr/include/c++/7/bits/std_function.h:706
#25 0x00007ffff4517a5d in ScriptEngine::doWithEnvironment(EntityItemID const&, QUrl const&, std::function<void ()>) (this=0x55556b24ece0, entityID=..., sandboxURL=..., operation=...) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2776
#26 0x00007ffff4517c26 in ScriptEngine::callWithEnvironment(EntityItemID const&, QUrl const&, QScriptValue, QScriptValue, QList<QScriptValue>) (this=0x55556b24ece0, entityID=..., sandboxURL=..., function=..., thisObject=..., args=...)
    at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2787
#27 0x00007ffff4508f4d in ScriptEngine::timerFired() (this=0x55556b24ece0) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:1543
#28 0x00007ffff45432ce in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ScriptEngine::*)()>::call(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff4508cdc <ScriptEngine::timerFired()>, o=0x55556b24ece0, arg=0x7ffe0f7fc590)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:152
#29 0x00007ffff453f7b6 in QtPrivate::FunctionPointer<void (ScriptEngine::*)()>::call<QtPrivate::List<>, void>(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff4508cdc <ScriptEngine::timerFired()>, o=0x55556b24ece0, arg=0x7ffe0f7fc590)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:185
#30 0x00007ffff4539f1a in QtPrivate::QSlotObject<void (ScriptEngine::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x7ffd8402ad40, r=0x55556b24ece0, a=0x7ffe0f7fc590, ret=0x0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:414
#31 0x00007fffeadf085f in QMetaObject::activate(QObject*, int, int, void**) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#32 0x00007fffeadfd627 in QTimer::timeout(QTimer::QPrivateSignal) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#33 0x00007fffeadfd988 in QTimer::timerEvent(QTimerEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#34 0x00007fffeadf126b in QObject::event(QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#35 0x00007fffeb8a1e6c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#36 0x00007fffeb8a9450 in QApplication::notify(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#37 0x0000555555ae9e72 in Application::notify(QObject*, QEvent*) (this=0x7fffffffacc0, object=0x7ffd8402f770, event=0x7ffe0f7fc980) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:4237
#38 0x00007fffeadc0b48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#39 0x00007fffeae1d0e9 in QTimerInfoList::activateTimers() () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#40 0x00007fffeae1d8b1 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#41 0x00007fffe0f88417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fffe0f88650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007fffe0f886dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007fffeae1dc7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#45 0x00007fffeadbed9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#46 0x00007ffff45111d0 in ScriptEngine::include(QStringList const&, QScriptValue) (this=0x55556b24ece0, includeFiles=..., callback=...) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2112
#47 0x00007ffff451167c in ScriptEngine::include(QString const&, QScriptValue) (this=0x55556b24ece0, includeFile=..., callback=...) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2126
#48 0x00007ffff458f5ed in ScriptEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55556b24ece0, _c=QMetaObject::InvokeMetaMethod, _id=45, _a=0x7ffe0f7fd0e0) at /home/motofckr9k/Vircadia/build/libraries/script-engine/script-engine_autogen/UVLADIE3JM/moc_ScriptEngine.cpp:489
#49 0x00007ffff45910f3 in ScriptEngine::qt_metacall(QMetaObject::Call, int, void**) (this=0x55556b24ece0, _c=QMetaObject::InvokeMetaMethod, _id=45, _a=0x7ffe0f7fd0e0) at /home/motofckr9k/Vircadia/build/libraries/script-engine/script-engine_autogen/UVLADIE3JM/moc_ScriptEngine.cpp:834
#50 0x00007fffec153c8a in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#51 0x00007fffec14d7e7 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#52 0x00007fffec14e27e in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#53 0x00007fffec14e4b2 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#54 0x00007fffec05a028 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#55 0x00007fffec0307f5 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#56 0x00007fff0414805b in  ()
#57 0x0000000000000003 in  ()
#58 0x00007ffeb0206a00 in  ()
#59 0x00007ffe00000011 in  ()
#60 0x00007ffe00000002 in  ()
#61 0x00007ffe0f7fd6e0 in  ()
#62 0x00007ffee018cd70 in  ()
#63 0x00007ffe58da71c0 in  ()
#64 0x0000000000000000 in  ()
(gdb) 

@JulianGro
Copy link
Contributor

Next crash:

vircadia-log.txt

(gdb) bt
#0  0x00007fffef1a30f4 in OffscreenUi::isPointOnDesktopWindow(QVariant) (this=0x0, point=...) at /home/motofckr9k/Vircadia/source/libraries/ui/src/OffscreenUi.cpp:213
#1  0x0000555555f51969 in WindowScriptingInterface::isPointOnDesktopWindow(QVariant) (this=0x5555593aec00, point=...) at /home/motofckr9k/Vircadia/source/interface/src/scripting/WindowScriptingInterface.cpp:204
#2  0x00005555561121fb in WindowScriptingInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5555593aec00, _c=QMetaObject::InvokeMetaMethod, _id=86, _a=0x7ffe1dfd7800) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/SZBG4JW7DO/moc_WindowScriptingInterface.cpp:562
#3  0x0000555556113c49 in WindowScriptingInterface::qt_metacall(QMetaObject::Call, int, void**) (this=0x5555593aec00, _c=QMetaObject::InvokeMetaMethod, _id=86, _a=0x7ffe1dfd7800) at /home/motofckr9k/Vircadia/build/interface/interface_autogen/SZBG4JW7DO/moc_WindowScriptingInterface.cpp:800
#4  0x00007fffec153c8a in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#5  0x00007fffec14d7e7 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#6  0x00007fffec14e27e in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#7  0x00007fffec14e4b2 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#8  0x00007fffec05a028 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#9  0x00007fffec0307f5 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#10 0x00007fff042b8de0 in  ()
#11 0xbb4900000000870f in  ()
#12 0x00007ffe54808a00 in  ()
#13 0x00007ffe00000010 in  ()
#14 0xffff000000000002 in  ()
#15 0x8549b84500000003 in  ()
#16 0x4800000000000010 in  ()
#17 0x00100842f708508b in  ()
#18 0x00000000850f0000 in  ()
#19 0xffffbb49b8458b49 in  ()
#20 0x00007fff04212470 in  ()
#21 0x00007fffb4434960 in  ()
#22 0x00007ffe57bb9328 in  ()
#23 0x00007ffee8268a88 in  ()
#24 0x00007fffec1cbdc8 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#25 0x00007ffee8267800 in  ()
#26 0x00007ffe57bb9000 in  ()
#27 0x000055556ae73648 in  ()
#28 0x00007ffee8267800 in  ()
#29 0x00007ffe6839b080 in  ()
#30 0x00007fffec1cbdc8 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#31 0x00007fffb4434948 in  ()
#32 0x00007fffebfe7779 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#33 0x00007fffec082b5d in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#34 0x00007fffec13b919 in QScriptValue::call(QScriptValue const&, QList<QScriptValue> const&) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Script.so.5
#35 0x00007ffff4517b76 in ScriptEngine::<lambda()>::operator()(void) const (__closure=0x55556cb14000) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2785
#36 0x00007ffff451bb14 in std::_Function_handler<void(), ScriptEngine::callWithEnvironment(const EntityItemID&, const QUrl&, QScriptValue, QScriptValue, QScriptValueList)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
#37 0x0000555555b48760 in std::function<void ()>::operator()() const (this=0x7ffe1dfd8150) at /usr/include/c++/7/bits/std_function.h:706
#38 0x00007ffff4517a5d in ScriptEngine::doWithEnvironment(EntityItemID const&, QUrl const&, std::function<void ()>) (this=0x55556b426880, entityID=..., sandboxURL=..., operation=...) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2776
#39 0x00007ffff4517c26 in ScriptEngine::callWithEnvironment(EntityItemID const&, QUrl const&, QScriptValue, QScriptValue, QList<QScriptValue>) (this=0x55556b426880, entityID=..., sandboxURL=..., function=..., thisObject=..., args=...)
    at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:2787
#40 0x00007ffff4508f4d in ScriptEngine::timerFired() (this=0x55556b426880) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:1543
#41 0x00007ffff45432ce in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ScriptEngine::*)()>::call(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff4508cdc <ScriptEngine::timerFired()>, o=0x55556b426880, arg=0x7ffe1dfd8420)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:152
#42 0x00007ffff453f7b6 in QtPrivate::FunctionPointer<void (ScriptEngine::*)()>::call<QtPrivate::List<>, void>(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff4508cdc <ScriptEngine::timerFired()>, o=0x55556b426880, arg=0x7ffe1dfd8420)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:185
#43 0x00007ffff4539f1a in QtPrivate::QSlotObject<void (ScriptEngine::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x7ffd840299b0, r=0x55556b426880, a=0x7ffe1dfd8420, ret=0x0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:414
#44 0x00007fffeadf085f in QMetaObject::activate(QObject*, int, int, void**) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#45 0x00007fffeadfd627 in QTimer::timeout(QTimer::QPrivateSignal) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#46 0x00007fffeadfd988 in QTimer::timerEvent(QTimerEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#47 0x00007fffeadf126b in QObject::event(QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#48 0x00007fffeb8a1e6c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#49 0x00007fffeb8a9450 in QApplication::notify(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Widgets.so.5
#50 0x0000555555ae9ef2 in Application::notify(QObject*, QEvent*) (this=0x7fffffffacc0, object=0x7ffd84065650, event=0x7ffe1dfd8810) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:4237
#51 0x00007fffeadc0b48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#52 0x00007fffeae1d0e9 in QTimerInfoList::activateTimers() () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#53 0x00007fffeae1d8b1 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#54 0x00007fffe0f88417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007fffe0f88650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007fffe0f886dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007fffeae1dc7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#58 0x00007fffeadbed9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#59 0x00007ffff45077ad in ScriptEngine::run() (this=0x55556b426880) at /home/motofckr9k/Vircadia/source/libraries/script-engine/src/ScriptEngine.cpp:1333
#60 0x00007ffff45432ce in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ScriptEngine::*)()>::call(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff45070d2 <ScriptEngine::run()>, o=0x55556b426880, arg=0x7ffe1dfd8d70)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:152
#61 0x00007ffff453f7b6 in QtPrivate::FunctionPointer<void (ScriptEngine::*)()>::call<QtPrivate::List<>, void>(void (ScriptEngine::*)(), ScriptEngine*, void**) (f=(void (ScriptEngine::*)(ScriptEngine * const)) 0x7ffff45070d2 <ScriptEngine::run()>, o=0x55556b426880, arg=0x7ffe1dfd8d70)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:185
#62 0x00007ffff4539f1a in QtPrivate::QSlotObject<void (ScriptEngine::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55556b3fa5e0, r=0x55556b426880, a=0x7ffe1dfd8d70, ret=0x0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:414
#63 0x00007fffeadf085f in QMetaObject::activate(QObject*, int, int, void**) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#64 0x00007fffeabe5667 in QThread::started(QThread::QPrivateSignal) () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#65 0x00007fffeabe8099 in  () at /home/motofckr9k/Vircadia/install_apitraceFix/../qt5-install/lib/libQt5Core.so.5
#66 0x00007ffff6aba669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#67 0x00007fffea5172b3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) 

@digisomni digisomni added this to the 2021.1.0 Release milestone Jan 21, 2021
@JulianGro
Copy link
Contributor

Green light from me.
The log does get spammed quite a bit with

[01/22 19:41:31] [WARNING] [default] DependencyManager::get(): No instance available for 11OffscreenUi

but that should be fixed by #937

@ctrlaltdavid
Copy link
Collaborator

Rebuilding now that Qt downloads required for Windows build are working again ...

@ctrlaltdavid ctrlaltdavid added rebuild rebuild through the GithubActions and removed rebuild rebuild through the GithubActions labels Jan 22, 2021
@ctrlaltdavid
Copy link
Collaborator

How do you build with QML disabled?
Is it a not uncommon thing to do?

@HifiExperiments
Copy link
Contributor Author

HifiExperiments commented Jan 23, 2021

I would say it’s uncommon. it’s necessary to do GPU traces via tools like apitrace or nsight, per the related radars. given that it’s uncommon and that most of this PR just boils down to nullptr checks, I would say this is a low risk change, even though it touches a few files

one way to disable it is by changing set(DISABLE_QML_OPTION OFF) to ON in CMakeLists.txt

HifiExperiments and others added 4 commits January 29, 2021 17:10
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
@ctrlaltdavid ctrlaltdavid added CR Approved At least one code reviewer has approved the PR. and removed needs CR (code review) labels Feb 1, 2021
Copy link
Member

@digisomni digisomni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what a DISABLE_QML build is supposed to fully look like but it didn't crash in desktop or VR on Windows.

@digisomni digisomni added QA Approved The PR has been tested successfully. and removed needs testing (QA) The PR is ready for testing labels Feb 2, 2021
@JulianGro
Copy link
Contributor

I don't know what a DISABLE_QML build is supposed to fully look like but it didn't crash in desktop or VR on Windows.

It won't have any UI elements like the toolbar, apps, settings, etc.

@HifiExperiments HifiExperiments merged commit 8f3ed5d into vircadia:master Feb 2, 2021
@HifiExperiments HifiExperiments deleted the apitraceFix branch February 2, 2021 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix CR Approved At least one code reviewer has approved the PR. QA Approved The PR has been tested successfully. rebuild rebuild through the GithubActions Severity: Low No important functionality is affected VR Virtual Reality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Another crash when running VR in apitrace on Linux Crash when running VR in apitrace on Linux

5 participants