Bug 464624 - Downloading Duplicate Wallpaper Crashes Plasma
Summary: Downloading Duplicate Wallpaper Crashes Plasma
Status: RESOLVED FIXED
Alias: None
Product: frameworks-knewstuff
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.102.0
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Fushan Wen
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-01-21 23:51 UTC by David Dustan
Modified: 2023-01-30 19:39 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (100.34 KB, text/plain)
2023-01-21 23:51 UTC, David Dustan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Dustan 2023-01-21 23:51:31 UTC
Application: plasmashell (5.26.90)

Qt Version: 5.15.8
Frameworks Version: 5.103.0
Operating System: Linux 5.15.0-58-generic x86_64
Windowing System: X11
Distribution: KDE neon Testing Edition
DrKonqi: 5.26.90 [CoredumpBackend]

-- Information about the crash:
I downloaded a wallpaper, removed it, then downloaded the same wallpaper.  I was asked if the previous wallpaper name was to be overwritten to which I answered 'Yes'. Plasma then crashed.

The crash can be reproduced every time.

-- Backtrace (Reduced):
#6  0x00007fb9f435c9cd in QString::operator=(QString const&) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
[...]
#12 0x00007fb9f5aad84a in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
[...]
#16 0x00007fb9f5addb16 in QV4::Runtime::CallQmlContextPropertyLookup::call(QV4::ExecutionEngine*, unsigned int, QV4::Value*, int) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
[...]
#19 0x00007fb9f5a5faee in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5
#20 0x00007fb9f5bec3a5 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5


Reported using DrKonqi
Comment 1 David Dustan 2023-01-21 23:51:32 UTC
Created attachment 155491 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 David Dustan 2023-01-22 20:10:33 UTC
1/22/23 - Something bigger is broken here.  I cannot perform updates and cannot add any wallpaper.  Desktop themes can still be installed. (I'll provide errors...)  -David
Comment 3 David Dustan 2023-01-22 20:43:43 UTC
The Discover message on boot after update failure says:

Failed Offline Update
Failed to update 1 package
Error while installing package trying to 
overwrite '/usr/share/locale/ca/
LC_MESSAGES/libkscreen5_qt.qm', which is 
also in package libkf5screen7

When I attempt to update I show 101 items to update. The update shows me that it wants to remove many (30+?) files then seems to do a quick installation as it quickly progresses...
Comment 4 David Dustan 2023-01-22 21:03:11 UTC
Failed wallpaper installation.  The following is shown after I attempt to download/install a wallpaper that I have not tried to download/install before.

Overwrite File

This file already exists on disk (possibly due to an earlier failed download attempt). Continuing means overwriting it. Do you wish to overwrite  the existing file?
'/home/ddustan/.local/share/wallpapers/02.jpg'

It appears to be that in downloading wallpaper I have two resolution options to download for many wallpapers. 01.jpg and .02.jpg. I downloaded two 02.jpg images and the second failed with the dialogue above. At this time I also experience the crash of Plasma. 
Perhaps I'm missing a 'Save as" dialogue but I'm not sure why I see all these simple file names on the wallpaper server?  In past KDE installs I have not seen this to my recollection.  -David
Comment 5 David Dustan 2023-01-26 16:12:14 UTC
Update (Jan. 26)

After update installation this morning situation is better. Only issue that remains is that if a wallpaper is downloaded from "Get New Wallpapers" button/link in the "Desktop Folder Settings" window and saved, it does so at location /home/.local/share/wallpapers/ as expected. I have downloaded files from the "Download New Wallpapers" to the location and downloaded another with the same file name, a very easy task as some users use simply 01.jpg or 02.jpg for different resolutions... for all of their posted wallpapers. The only issue is this - I downloaded 01.jpg and then if I redownload the wallpaper or download a new wallpaper with the same file name, I am prompted to overwrite the file which I accept.  Plasma then crashes. For some reason, the original 01.jpg will not overwrite and Plasma crashes.  
~~Should I remove and reinstall the latest version of Neon? I think this problem may be with my installation ...

Davd
Comment 6 David Dustan 2023-01-26 20:12:46 UTC
Decided to download and reinstall Neon. Previously stated issue still occurs as in note posted earlier today. Plasma still crashes when downloading and installing a previously used filename.

David
Comment 7 Fushan Wen 2023-01-29 13:09:51 UTC
(gdb) bt
#0  __GI___pthread_sigmask (how=1, newmask=<optimized out>, oldmask=0x0) at pthread_sigmask.c:43
#1  0x00007f7ec4a42afd in __GI___sigprocmask (how=<optimized out>, set=<optimized out>, oset=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigprocmask.c:25
#2  0x00007f7ec7a8987b in KCrash::setCrashHandler(void (*)(int)) (handler=handler@entry=0x0)
    at /usr/src/debug/kcrash-5.101.0git.20230114T134244~d24df73/src/kcrash.cpp:414
#3  0x00007f7ec7a8bd23 in KCrash::defaultCrashHandler(int) (sig=11)
    at /usr/src/debug/kcrash-5.101.0git.20230114T134244~d24df73/src/kcrash.cpp:625
#4  0x00007f7ec4a428e0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007f7ec51781ac in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x3ff0000000000000)
    at /usr/include/c++/12/bits/atomic_base.h:488
#6  QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&)
    (_q_value=<error reading variable: Cannot access memory at address 0x3ff0000000000000>)
    at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:239
#7  QBasicAtomicInteger<int>::loadRelaxed() const (this=0x3ff0000000000000)
    at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:107
#8  QtPrivate::RefCount::deref() (this=0x3ff0000000000000) at ../../include/QtCore/../../src/corelib/tools/qrefcount.h:66
#9  QString::operator=(QString const&) (this=0x1dd0f40, other=...) at text/qstring.cpp:2404
#10 0x00007f7e9dc7ec0d in KNSCore::Question::setResponse(QString const&) (this=<optimized out>, response=...)
    at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/src/core/question.cpp:104
#11 0x00007f7e9dd109bf in KNewStuffQuick::QuickQuestionListener::passResponse(bool, QString)
    (input=..., responseIsContinue=<optimized out>, this=0x1155e260)
    at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/src/qtquick/quickquestionlistener.cpp:91
#12 KNewStuffQuick::QuickQuestionListener::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
    (_o=0x1155e260, _c=<optimized out>, _id=<optimized out>, _a=0x7ffe678ac150)
    at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/build/src/qtquick/newstuffqmlplugin_autogen/EWIEGA46WW/moc_quickquestionlistener.cpp:112
#13 0x00007f7e9dd132f3 in KNewStuffQuick::QuickQuestionListener::qt_metacall(QMetaObject::Call, int, void**)
    (this=0x1155e260, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffe678ac150)
    at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/build/src/qtquick/newstuffqmlplugin_autogen/EWIEGA46WW/moc_quickquestionlistener.cpp:185
#14 0x00007f7ec6ede3a3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const
--Type <RET> for more, q to quit, c to continue without paging--q
Quit
(gdb) set pagination off
(gdb) bt
#0  __GI___pthread_sigmask (how=1, newmask=<optimized out>, oldmask=0x0) at pthread_sigmask.c:43
#1  0x00007f7ec4a42afd in __GI___sigprocmask (how=<optimized out>, set=<optimized out>, oset=<optimized out>) at ../sysdeps/unix/sysv/linux/sigprocmask.c:25
#2  0x00007f7ec7a8987b in KCrash::setCrashHandler(void (*)(int)) (handler=handler@entry=0x0) at /usr/src/debug/kcrash-5.101.0git.20230114T134244~d24df73/src/kcrash.cpp:414
#3  0x00007f7ec7a8bd23 in KCrash::defaultCrashHandler(int) (sig=11) at /usr/src/debug/kcrash-5.101.0git.20230114T134244~d24df73/src/kcrash.cpp:625
#4  0x00007f7ec4a428e0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00007f7ec51781ac in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x3ff0000000000000) at /usr/include/c++/12/bits/atomic_base.h:488
#6  QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=<error reading variable: Cannot access memory at address 0x3ff0000000000000>) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:239
#7  QBasicAtomicInteger<int>::loadRelaxed() const (this=0x3ff0000000000000) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:107
#8  QtPrivate::RefCount::deref() (this=0x3ff0000000000000) at ../../include/QtCore/../../src/corelib/tools/qrefcount.h:66
#9  QString::operator=(QString const&) (this=0x1dd0f40, other=...) at text/qstring.cpp:2404
#10 0x00007f7e9dc7ec0d in KNSCore::Question::setResponse(QString const&) (this=<optimized out>, response=...) at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/src/core/question.cpp:104
#11 0x00007f7e9dd109bf in KNewStuffQuick::QuickQuestionListener::passResponse(bool, QString) (input=..., responseIsContinue=<optimized out>, this=0x1155e260) at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/src/qtquick/quickquestionlistener.cpp:91
#12 KNewStuffQuick::QuickQuestionListener::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x1155e260, _c=<optimized out>, _id=<optimized out>, _a=0x7ffe678ac150) at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/build/src/qtquick/newstuffqmlplugin_autogen/EWIEGA46WW/moc_quickquestionlistener.cpp:112
#13 0x00007f7e9dd132f3 in KNewStuffQuick::QuickQuestionListener::qt_metacall(QMetaObject::Call, int, void**) (this=0x1155e260, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffe678ac150) at /usr/src/debug/knewstuff-5.101.0git.20230126T020456~9809ab4/build/src/qtquick/newstuffqmlplugin_autogen/EWIEGA46WW/moc_quickquestionlistener.cpp:185
#14 0x00007f7ec6ede3a3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=this@entry=0x7ffe678ac3f0, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=12, argv=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/qml/qqmlobjectorgadget.cpp:51
#15 0x00007f7ec6dbb799 in CallMethod (callType=<optimized out>, callArgs=0x3, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=...) at /usr/include/qt5/QtCore/qvarlengtharray.h:189
#16 CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) (object=..., data=<optimized out>, engine=engine@entry=0xeea2e40, callArgs=callArgs@entry=0x7f7e553c1628, callType=callType@entry=QMetaObject::InvokeMetaMethod) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4qobjectwrapper.cpp:1553
#17 0x00007f7ec6dbd3fb in CallOverloaded (callType=<optimized out>, propertyCache=<optimized out>, callArgs=<optimized out>, engine=<optimized out>, data=<optimized out>, object=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4qobjectwrapper.cpp:1629
#18 QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4qobjectwrapper.cpp:2117
#19 0x00007f7ec6dd9e86 in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../src/qml/jsruntime/qv4functionobject_p.h:202
#20 QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x3ff0000000000000, engine=0xeea2e40, code=0xecb1340 "\200\242\360\306~\177") at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4vme_moth.cpp:757
#21 0x00007f7ec6ddd5cf in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7ffe678ac6b0, engine=engine@entry=0xeea2e40) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4vme_moth.cpp:466
#22 0x00007f7ec6d712d8 in QV4::ArrowFunction::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) (fo=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4functionobject.cpp:528
#23 0x00007f7ec6dec954 in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=1, argv=0x7f7e553c1548, thisObject=0x7f7e553c1580, this=0x7ffe678ac748) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4functionobject_p.h:202
#24 QV4::Runtime::CallQmlContextPropertyLookup::call(QV4::ExecutionEngine*, unsigned int, QV4::Value*, int) (engine=0xeea2e40, index=<optimized out>, argv=0x7f7e553c1548, argc=1) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4runtime.cpp:1366
#25 0x00007f7ec6dd8f82 in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x3ff0000000000000, engine=0xeea2e40, code=0x7f7e9dbc87ef "\016\002") at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4vme_moth.cpp:787
#26 0x00007f7ec6ddd5cf in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7ffe678ac940, engine=engine@entry=0xeea2e40) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4vme_moth.cpp:466
#27 0x00007f7ec6d7050e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) (this=this@entry=0x1703f10, thisObject=<optimized out>, argv=argv@entry=0x7f7e553c1500, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/jsruntime/qv4function.cpp:69
#28 0x00007f7ec6ef8b5d in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=this@entry=0xbf93720, callData=callData@entry=0x7f7e553c14d0, isUndefined=isUndefined@entry=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/qml/qqmljavascriptexpression.cpp:212
#29 0x00007f7ec6eaa18f in QQmlBoundSignalExpression::evaluate(void**) (this=<optimized out>, a=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../src/qml/jsruntime/qv4jscall_p.h:95
#30 0x00007f7ec6eab368 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0xa56d8f0, a=0x0) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#31 0x00007f7ec6edde8f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/qml/qml/qqmlnotifier.cpp:104
#32 0x00007f7ec531302d in doActivate<false>(QObject*, int, void**) (sender=0x11a72400, signal_index=61, argv=0x0) at kernel/qobject.cpp:3815
#33 0x00007f7ec53132dd in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe678ae5d0, r=0x11a72400, this=0x10fa98f0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#34 doActivate<false>(QObject*, int, void**) (sender=0xf0251e0, signal_index=67, argv=0x7ffe678ae5d0) at kernel/qobject.cpp:3923
#35 0x00007f7ec0377140 in QQuickDialogButtonBoxPrivate::handleClick() (this=<optimized out>) at /usr/src/debug/qtquickcontrols2-everywhere-src-5.15.8+kde7/src/quicktemplates2/qquickdialogbuttonbox.cpp:382
#36 0x00007f7ec53132dd in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe678ae6c0, r=0xf0251e0, this=0x24c1dd0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#37 doActivate<false>(QObject*, int, void**) (sender=0x10520280, signal_index=64, argv=0x7ffe678ae6c0) at kernel/qobject.cpp:3923
#38 0x00007f7ec0357211 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&) (this=0x2043180, point=...) at /usr/src/debug/qtquickcontrols2-everywhere-src-5.15.8+kde7/src/quicktemplates2/qquickabstractbutton.cpp:182
#39 0x00007f7ec0371485 in QQuickControl::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, event=0x7ffe678aeaf0) at /usr/src/debug/qtquickcontrols2-everywhere-src-5.15.8+kde7/src/quicktemplates2/qquickcontrol.cpp:2181
#40 0x00007f7ec7486eb8 in QQuickItem::event(QEvent*) (this=0x10520280, ev=0x7ffe678aeaf0) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/quick/items/qquickitem.cpp:8308
#41 0x00007f7ec5fa544e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x10520280, e=0x7ffe678aeaf0) at kernel/qapplication.cpp:3640
#42 0x00007f7ec52dc138 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x10520280, event=0x7ffe678aeaf0) at kernel/qcoreapplication.cpp:1064
#43 0x00007f7ec74a1b8a in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) (this=this@entry=0xfabfbd0, pointerEvent=0xcfc88a0) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/quick/items/qquickwindow.cpp:2025
#44 0x00007f7ec74a3379 in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) (this=0xfabfbd0, event=0xcfc88a0) at /usr/src/debug/qtdeclarative-everywhere-src-5.15.8+kde22/src/quick/items/qquickwindow.cpp:2628
#45 0x00007f7ec57878b5 in QWindow::event(QEvent*) (this=0x1154f6c0, ev=<optimized out>) at kernel/qwindow.cpp:2455
#46 0x00007f7ec5fa544e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x1154f6c0, e=0x7ffe678aeaf0) at kernel/qapplication.cpp:3640
#47 0x00007f7ec52dc138 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1154f6c0, event=0x7ffe678aeaf0) at kernel/qcoreapplication.cpp:1064
#48 0x00007f7ec577b89d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0xa8707e0) at kernel/qguiapplication.cpp:2285
#49 0x00007f7ec574f26c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#50 0x00007f7ec0f1914a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#51 0x00007f7ec404fa90 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#52 0x00007f7ec404fe48 in  () at /lib64/libglib-2.0.so.0
#53 0x00007f7ec404fedc in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#54 0x00007f7ec5333b66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x872ee0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#55 0x00007f7ec52dabab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe678aee20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#56 0x00007f7ec52e2d16 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#57 0x00007f7ec576ed3c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#58 0x00007f7ec5fa53c5 in QApplication::exec() () at kernel/qapplication.cpp:2832
#59 0x00000000004249e6 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /mnt/data/home/qydw/Develop/KDE/Plasma/plasma-workspace/shell/main.cpp:235
Comment 8 David Edmundson 2023-01-29 13:21:51 UTC
>KNS3::WidgetQuestionListener::askQuestion

This code is absolutely full of nested event loop and does nothing to track or maintain the lifespan of KNS::Question.
Comment 9 Bug Janitor Service 2023-01-29 13:36:36 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/knewstuff/-/merge_requests/220
Comment 10 Bug Janitor Service 2023-01-29 15:56:43 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/knewstuff/-/merge_requests/221
Comment 11 Christoph Cullmann 2023-01-30 19:39:38 UTC
Git commit e9e0e3faa986757ba096dbe599468f395b3461d3 by Christoph Cullmann, on behalf of David Edmundson.
Committed on 30/01/2023 at 18:42.
Pushed by cullmann into branch 'master'.

Fix crash in QQuickQuestionListener

The code path is:
 - we create a Question object
 - we show a prompt
 - we start a nested event loop to get this into a syncronous API
 - we return the result to the question object

The lifespan of the question object is not controlled by the listener,
during the nested event loop anything could have happened including
deletion.

M  +3    -2    src/qtquick/quickquestionlistener.cpp

https://invent.kde.org/frameworks/knewstuff/commit/e9e0e3faa986757ba096dbe599468f395b3461d3
Comment 12 Christoph Cullmann 2023-01-30 19:39:58 UTC
Git commit c8e5b36e190f8b71ac14e3afd403debdbe3cf9a8 by Christoph Cullmann, on behalf of David Edmundson.
Committed on 30/01/2023 at 19:39.
Pushed by cullmann into branch 'kf5'.

Fix crash in QQuickQuestionListener

The code path is:
 - we create a Question object
 - we show a prompt
 - we start a nested event loop to get this into a syncronous API
 - we return the result to the question object

The lifespan of the question object is not controlled by the listener,
during the nested event loop anything could have happened including
deletion.


(cherry picked from commit e9e0e3faa986757ba096dbe599468f395b3461d3)

M  +3    -2    src/qtquick/quickquestionlistener.cpp

https://invent.kde.org/frameworks/knewstuff/commit/c8e5b36e190f8b71ac14e3afd403debdbe3cf9a8