https://bugs.kde.org/show_bug.cgi?id=498907
Bug ID: 498907 Summary: kscreenlocker_greet hits an assert in qtvirtualkeyboard when using multiple monitors Classification: Plasma Product: plasmashell Version: master Platform: Other OS: Linux Status: REPORTED Severity: grave Priority: NOR Component: Screen locking Assignee: plasma-b...@kde.org Reporter: fa...@kde.org Target Milestone: 1.0 SUMMARY When Qt is built with assertions enabled, and when using multiple monitors, as soon as I lock my screen, kscreenlocker_greet crashes and I get the fallback text message that says I'll have to use a TTY to unlock. STEPS TO REPRODUCE 1. Build qtvirtualkeyboard in debug mode 2. $KDEDIR/lib64/libexec/kscreenlocker_greet --testing OBSERVED RESULT main Greeter is starting up. PamWorker::start [PAM worker kde] start: successfully started PamWorker::start [PAM worker kde-fingerprint] start: successfully started PamWorker::start [PAM worker kde-smartcard] start: successfully started main Greeter is running in testing mode ScreenLocker::UnlockApp::setTesting Testing mode enabled: true QVirtualKeyboardInputContextPrivate::registerInputPanel QVirtualKeyboardInputContextPrivate::registerInputPanel(): VirtualKeyboard_QMLTYPE_120(0x1b89f0d0) QVirtualKeyboardInputContextPrivate::registerInputPanel QVirtualKeyboardInputContextPrivate::registerInputPanel(): VirtualKeyboard_QMLTYPE_120(0x1bdc1740) unknown ASSERT: "!this->inputPanel" in file /d/qt/6/kde/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp, line 203 [1] 1414108 IOT instruction (core dumped) /d/kde/inst/kde_frameworks6/lib64/libexec/kscreenlocker_greet --testing #7 0x00007fac7bb1a0dc in QMessageLogger::fatal (this=0x7ffdb2f0e530, msg=0x7fac7c11d620 "ASSERT: \"%s\" in file %s, line %d") at /d/qt/6/kde/qtbase/src/corelib/global/qlogging.cpp:884 #8 0x00007fac7bb087e4 in qt_assert (assertion=0x7fac763abd13 "!this->inputPanel", file=0x7fac763abb80 "/d/qt/6/kde/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp", line=203) at /d/qt/6/kde/qtbase/src/corelib/global/qassert.cpp:105 #9 0x00007fac76355519 in QVirtualKeyboardInputContextPrivate::registerInputPanel (this=0x17593a30, inputPanel=0x17c82230) at /d/qt/6/kde/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp:203 #10 0x00007fac7630fcff in QVirtualKeyboardInputContextPrivate::qt_static_metacall (_o=0x17593a30, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0x7ffdb2f0e8e8) at /d/qt/6/kde/build-debug/qtvirtualkeyboard/src/virtualkeyboard/VirtualKeyboard_autogen/EWIEGA46WW/moc_qvirtualkeyboardinputcontext_p.cpp:299 #11 0x00007fac76310505 in QVirtualKeyboardInputContextPrivate::qt_metacall (this=0x17593a30, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0x7ffdb2f0e8e8) at /d/qt/6/kde/build-debug/qtvirtualkeyboard/src/virtualkeyboard/VirtualKeyboard_autogen/EWIEGA46WW/moc_qvirtualkeyboardinputcontext_p.cpp:432 #12 0x00007fac7bc19e2b in QMetaObject::metacall (object=0x17593a30, cl=QMetaObject::InvokeMetaMethod, idx=19, argv=0x7ffdb2f0e8e8) at /d/qt/6/kde/qtbase/src/corelib/kernel/qmetaobject.cpp:336 #13 0x00007fac7f2131fb in QQmlObjectOrGadget::metacall (this=0x7ffdb2f0edb0, type=QMetaObject::InvokeMetaMethod, index=19, argv=0x7ffdb2f0e8e8) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:14 #14 0x00007fac7efacf5c in QV4::CallMethod (object=..., index=19, returnType=..., argCount=1, argTypes=0x7ffdb2f0ec48, engine=0x172f47d0, callArgs=0x7fac5fbbf588, callType=QMetaObject::InvokeMetaMethod) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1679 #15 0x00007fac7efae566 in QV4::QObjectMethod::callPrecise (object=..., data=..., engine=0x172f47d0, callArgs=0x7fac5fbbf588, callType=QMetaObject::InvokeMetaMethod) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1988 #16 0x00007fac7efb3376 in operator() (__closure=0x7ffdb2f0ee30) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2984 #17 0x00007fac7efb3461 in operator()<QV4::QObjectMethod::callInternal(const QV4::Value*, const QV4::Value*, int) const::<lambda()> >(const struct {...} &) const (__closure=0x7ffdb2f0ee10, call=...) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2961 #18 0x00007fac7efb3c32 in QV4::QObjectMethod::callInternal (this=0x7ffdb2f0f218, thisObject=0x7fac5fbbf538, argv=0x7fac5fbbf550, argc=1) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2984 #19 0x00007fac7efb2d94 in QV4::QObjectMethod::virtualCall (m=0x7ffdb2f0f218, thisObject=0x7fac5fbbf538, argv=0x7fac5fbbf550, argc=1) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2866 #20 0x00007fac7ee71dda in QV4::FunctionObject::call (this=0x7ffdb2f0f218, thisObject=0x7fac5fbbf538, argv=0x7fac5fbbf550, argc=1) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4functionobject_p.h:187 #21 0x00007fac7f064750 in QV4::Moth::VME::interpret (frame=0x7ffdb2f10870, engine=0x172f47d0, code=0x7fac5878880d "\030\006\324\026\006\002") at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:798 #22 0x00007fac7f05ffd8 in QV4::Moth::VME::exec (frame=0x7ffdb2f10870, engine=0x172f47d0) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:487 #23 0x00007fac7ef2acec in QV4::doCall (self=0x1783e4c0, thisObject=0x7fac5fbbf4f8, argv=0x7fac5fbbf4f8, argc=0, context=0x7fac54f86230) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4function.cpp:52 #24 0x00007fac7ef2aedc in QV4::Function::call (this=0x1783e4c0, thisObject=0x7fac5fbbf4f8, argv=0x7fac5fbbf4f8, argc=0, context=0x7fac54f86230) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4function.cpp:77 #25 0x00007fac7ef2a9b6 in operator() (__closure=0x7ffdb2f10a80, thisObject=0x7fac5fbbf4f8, argv=0x7fac5fbbf4f8, argc=0) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4function.cpp:28 #26 0x00007fac7ef2c364 in QV4::convertAndCall<QV4::Function::call(QObject*, void**, const QMetaType*, int, QV4::ExecutionContext*)::<lambda(const QV4::Value*, const QV4::Value*, int)> >(QV4::ExecutionEngine *, QObject *, void **, const QMetaType *, int, struct {...}) (engine=0x172f47d0, thisObject=0x17c94340, a=0x7ffdb2f10c50, types=0x7ffdb2f10c60, argc=0, call=...) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4jscall_p.h:199 #27 0x00007fac7ef2aa54 in QV4::Function::call (this=0x1783e4c0, thisObject=0x17c94340, a=0x7ffdb2f10c50, types=0x7ffdb2f10c60, argc=0, context=0x7fac54f86230) at /d/qt/6/kde/qtdeclarative/src/qml/jsruntime/qv4function.cpp:25 #28 0x00007fac7f19486a in QQmlJavaScriptExpression::evaluate (this=0x17cc7f00, a=0x7ffdb2f10c50, types=0x7ffdb2f10c60, argc=0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:270 #29 0x00007fac7f0eb595 in QQmlBoundSignalExpression::evaluate (this=0x17cc7f00, a=0x0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:200 #30 0x00007fac7f0ebab7 in QQmlBoundSignal_callback (e=0x17cc7f70, a=0x0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:315 #31 0x00007fac7f1e5d8c in QQmlNotifier::emitNotify (endpoint=0x0, a=0x0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:70 #32 0x00007fac7f135fa5 in QQmlData::signalEmitted (object=0x17cc79b0, index=3, a=0x0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlengine.cpp:340 #33 0x00007fac7bca8080 in doActivate<false> (sender=0x17cc79b0, signal_index=3, argv=0x0) at /d/qt/6/kde/qtbase/src/corelib/kernel/qobject.cpp:4014 #34 0x00007fac7bc9cac6 in QMetaObject::activate (sender=0x17cc79b0, m=0x7fac7f856f00 <QQmlComponentAttached::staticMetaObject>, local_signal_index=0, argv=0x0) at /d/qt/6/kde/qtbase/src/corelib/kernel/qobject.cpp:4184 #35 0x00007fac7f10c7ff in QQmlComponentAttached::completed (this=0x17cc79b0) at /d/qt/6/kde/build-debug/qtdeclarative/src/qml/Qml_autogen/include/moc_qqmlcomponentattached_p.cpp:154 #36 0x00007fac7f1f13ba in QQmlObjectCreator::finalize (this=0x17c8cc60, interrupt=...) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1604 #37 0x00007fac7f18eae6 in QQmlIncubatorPrivate::incubate (this=0x17c10c70, i=...) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlincubator.cpp:352 #38 0x00007fac7f18d796 in QQmlEnginePrivate::incubate (this=0x1729e1b0, i=..., forContext=...) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlincubator.cpp:53 #39 0x00007fac7f1087d6 in QQmlComponent::create (this=0x17c11c10, incubator=..., context=0x17c11ed0, forContext=0x0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1518 #40 0x00007fac7feac274 in QQuickLoaderPrivate::_q_sourceLoaded (this=0x17bb50a0) at /d/qt/6/kde/qtdeclarative/src/quick/items/qquickloader.cpp:734 #41 0x00007fac7feab73b in QQuickLoaderPrivate::load (this=0x17bb50a0) at /d/qt/6/kde/qtdeclarative/src/quick/items/qquickloader.cpp:604 #42 0x00007fac7feac3ae in QQuickLoader::componentComplete (this=0x17bb4fc0) at /d/qt/6/kde/qtdeclarative/src/quick/items/qquickloader.cpp:794 #43 0x00007fac7f1f112a in QQmlObjectCreator::finalize (this=0x17a90760, interrupt=...) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1581 #44 0x00007fac7f106b5e in QQmlComponentPrivate::complete (enginePriv=0x1729e1b0, state=0x17bd6808) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1188 #45 0x00007fac7f1072aa in QQmlComponentPrivate::completeCreate (this=0x17bd6750) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1304 #46 0x00007fac7f106f50 in QQmlComponent::completeCreate (this=0x17bf13b0) at /d/qt/6/kde/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1271 #47 0x00007fac815b64fb in PlasmaQuick::SharedQmlEngine::completeInitialization (this=0x7fac68003c70, initialProperties=<optimized out>) at /d/kde/src/6/kde/workspace/libplasma/src/plasmaquick/sharedqmlengine.cpp:270 #48 0x00007fac815b6605 in PlasmaQuick::SharedQmlEnginePrivate::scheduleExecutionEnd (this=0x17b49580) at /d/qt/6/inst/include/QtCore/qhash.h:839 #49 0x00007fac815b88f0 in PlasmaQuick::QuickViewSharedEngine::setSource (this=0x17211870, url=...) at /d/kde/src/6/kde/workspace/libplasma/src/plasmaquick/quickviewsharedengine.cpp:214 #50 PlasmaQuick::QuickViewSharedEngine::setSource (this=this@entry=0x17211870, url=...) at /d/kde/src/6/kde/workspace/libplasma/src/plasmaquick/quickviewsharedengine.cpp:208 #51 0x000000000041dda4 in ScreenLocker::UnlockApp::createViewForScreen (this=this@entry=0x7ffdb2f138a0, screen=screen@entry=0x172186e0) at /d/kde/src/6/kde/workspace/kscreenlocker/greeter/greeterapp.cpp:383 #52 0x000000000041ebd9 in ScreenLocker::UnlockApp::handleScreen (this=this@entry=0x7ffdb2f138a0, screen=0x172186e0) at /d/kde/src/6/kde/workspace/kscreenlocker/greeter/greeterapp.cpp:310 #53 0x000000000041ef3f in ScreenLocker::UnlockApp::initialViewSetup (this=this@entry=0x7ffdb2f138a0) at /d/kde/src/6/kde/workspace/kscreenlocker/greeter/greeterapp.cpp:300 #54 0x000000000041141c in main (argc=<optimized out>, argv=<optimized out>) at /d/kde/src/6/kde/workspace/kscreenlocker/greeter/main.cpp:203 EXPECTED RESULT I'm sure you know the answer to this one ;) SOFTWARE/OS VERSIONS Operating System: openSUSE Tumbleweed 20241226 KDE Plasma Version: 6.3.80 KDE Frameworks Version: 6.11.0 Qt Version: 6.8.1 Kernel Version: 6.12.6-1-default (64-bit) Graphics Platform: X11 Processors: 16 × Intel® Xeon® W-10885M CPU @ 2.40GHz Memory: 62.5 GiB of RAM Graphics Processor: Quadro T1000 ADDITIONAL INFORMATION https://bugreports.qt.io/browse/QTBUG-90809 says: The Q_ASSERT was added as part of the fix for QTBUG-56918, making sure and asserting that there is only one InputPanel, as otherwise assumptions elsewhere in the VirtualKeyboard code will fail. So, asserting that the "this->inputPanel" pointer is nullptr when QVirtualKeyboardInputContextPrivate::registerInputPanel is intentional and correct. -- You are receiving this mail because: You are watching all bug changes.