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.

Reply via email to