Created attachment 183304 [details] Core backtrace after plasmashell stopped responding (from ABRT reporting) SUMMARY Sending messages through KMail causes plasmashell to crash due to null pointer in Qt's QHttp2ProtocolHandler (Qt 6.9.1, KDE Frameworks 6.16) STEPS TO REPRODUCE 1. Go to KMail (and sign in) 2. Send a message OBSERVED RESULT Whole Plasmashell crashes EXPECTED RESULT Plasmashell shouldn't crash SOFTWARE/OS VERSIONS Operating System: Fedora Linux 42 KDE Plasma Version: 6.4.2 KDE Frameworks Version: 6.16.0 Qt Version: 6.9.1 Kernel Version: 6.15.6-200.fc42.x86_64 (64-bit) Graphics Platform: Wayland Processors: 4 × Intel® Core™ i3-6006U CPU @ 2.00GHz Memory: 12 GiB of RAM (11.6 GiB usable) Graphics Processor: Intel® HD Graphics 520 ADDITIONAL INFORMATION Backtrace has been provided in the attachments.
Finally found the exact backtrace. Please don't refer to the attachments. #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 tid = <optimized out> ret = 0 pd = <optimized out> old_mask = {__val = {0}} ret = <optimized out> #1 0x00007f2e3e0811e3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89 #2 0x00007f2e3e027afe in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 ret = <optimized out> #3 0x00007f2e41646031 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kf6-kcrash-6.16.0-1.fc42.x86_64/src/kcrash.cpp:605 data = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7f2e4164e808 <vtable for KCrash::Metadata+16>}, argv = {_M_elems = {0x0, 0x7f2e4164c70d "--qtversion", 0x55c44a418d10 "6.9.1", 0x7f2e4164c720 "--kdeframeworksversion", 0x7f2e4164c719 "6.16.0", 0x7f2e4164c758 "--platform", 0x7f2e040a6300 "wayland", 0x7f2e4164c789 "--appname", 0x55c44a418d90 "plasmashell", 0x7f2e4164c793 "--apppath", 0x55c44a418db0 "/usr/bin", 0x7f2e4164c7a0 "--signal", 0x7f2d703fc586 "11", 0x7f2e4164c7ae "--pid", 0x7f2d703fc590 "2103", 0x7f2e4164c7b4 "--appversion", 0x55c44a418a40 "6.4.2", 0x7f2e4164c7c1 "--programname", 0x55c42d70b740 <QByteArray::_empty> "", 0x7f2e4164c7cf "--bugaddress", 0x55c44a420c60 "submit@bugs.kde.org", 0x0 <repeats 17 times>}}, argc = 21, m_writer = 0x7f2d703fc530} platformName = {d = {d = 0x7f2e040a62f0, ptr = 0x7f2e040a6300 "wayland", size = 7}, static _empty = 0 '\000'} about = 0x55c44a418ac0 argv = 0x7f2d703fc5b8 ini = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7f2e4164e838 <vtable for KCrash::MetadataINIWriter+16>}, writable = false, fd = 34} sigtxt = "11\000\376\376\376\376\376\376\376" pidtxt = "2103\000", '\376' <repeats 15 times> argc = <optimized out> crashRecursionCounter = 2 #4 0x00007f2e3e027c30 in <signal handler called> () at /lib64/libc.so.6 #5 0x00007f2e3d8c8491 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/tools/qscopedpointer.h:112 #6 qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/global/qtclasshelpermacros.h:137 #7 QHttpNetworkReply::d_func (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/access/qhttpnetworkreply_p.h:159 #8 QHttp2ProtocolHandler::handleDataReceived (this=0x7f2e040066d0, data=..., endStream=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/access/qhttp2protocolhandler.cpp:399 --Type <RET> for more, q to quit, c to continue without paging--c replyPrivate = <optimized out> stream = 0x7f2e04006590 httpPair = <optimized out> httpReply = <optimized out> #9 0x00007f2e3e7657ba in QtPrivate::QSlotObjectBase::call (this=0x7f2e0408c9c0, r=0x7f2e040066d0, a=0x7f2d703fcfa0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461 #10 doActivate<false> (sender=0x7f2e04006590, signal_index=9, argv=argv@entry=0x7f2d703fcfa0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4146 obj = {m_slotObject = std::unique_ptr<class QtPrivate::QSlotObjectBase> = {get() = 0x7f2e0408c9c0}} receiver = 0x7f2e040066d0 td = <optimized out> receiverInSameThread = <optimized out> senderData = {previous = 0x0, receiver = 0x7f2e040066d0, sender = 0x7f2e04006590, signal = 9} c = 0x7f2e040a1750 connections = {d = {ptr = 0x7f2e04049500}} list = 0x7f2ddc23be20 inSenderThread = <optimized out> highestConnectionId = 5 signalVector = 0x7f2ddc23bd70 currentThreadId = 0x7f2d703ff6c0 sp = <optimized out> signal_spy_set = 0x0 empty_argv = {0x0} senderDeleted = false #11 0x00007f2e3e75c089 in QMetaObject::activate (sender=sender@entry=0x7f2e04006590, m=m@entry=0x7f2e3da08960 <QHttp2Stream::staticMetaObject>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7f2d703fcfa0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4206 signal_index = <optimized out> #12 0x00007f2e3d8b618d in QMetaObject::activate<void, QByteArray, bool> (sender=0x7f2e04006590, mo=0x7f2e3da08960 <QHttp2Stream::staticMetaObject>, local_signal_index=6, ret=0x0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobjectdefs.h:306 _a = {0x0, 0x7f2d703fcfe0, 0x7f2d703fcf9c} #13 QHttp2Stream::dataReceived (this=this@entry=0x7f2e04006590, _t1=..., _t2=<optimized out>, _t2@entry=false) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/redhat-linux-build/src/network/Network_autogen/include/moc_qhttp2connection_p.cpp:332 #14 0x00007f2e3d8bbf10 in QHttp2Stream::handleDATA (this=0x7f2e04006590, inboundFrame=...) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/access/qhttp2connection.cpp:697 fragment = {d = {d = 0x7f2e0407a1f0, ptr = 0x7f2e0407a200 "\305L\200\334F\252\300\362\206dd\213p\236H\327\004s\022&\\\202\240\223Һ\f\"\245\314\355\003n\023s\375\243\340pT\032If\263\232lM\211", size = 16384}} connection = 0x7f2e0400d670 endStream = false #15 0x00007f2e3d8bc51a in QHttp2Connection::handleDATA (this=0x7f2e0400d670) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/access/qhttp2connection.cpp:1408 streamID = 1 stream = <optimized out> it = {i = {d = <optimized out>, bucket = <optimized out>}} #16 0x00007f2e3d8bf858 in QHttp2Connection::handleReadyRead (this=0x7f2e0400d670) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/access/qhttp2connection.cpp:1169 result = <optimized out> frameType = Http2::FrameType::DATA streamIsActive = {<No data fields>} socket = 0x7f2e040b0800 #17 0x00007f2e3e7657ba in QtPrivate::QSlotObjectBase::call (this=0x7f2e0402b0b0, r=0x7f2e0408e2f8, a=0x7f2d703fd1f8) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:461 #18 doActivate<false> (sender=0x7f2e040b0800, signal_index=3, argv=0x7f2d703fd1f8, argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4146 obj = {m_slotObject = std::unique_ptr<class QtPrivate::QSlotObjectBase> = {get() = 0x7f2e0402b0b0}} receiver = 0x7f2e0408e2f8 td = <optimized out> receiverInSameThread = <optimized out> senderData = {previous = 0x0, receiver = 0x7f2e0408e2f8, sender = 0x7f2e040b0800, signal = 3} c = 0x7f2e04045ed0 connections = {d = {ptr = 0x7f2e04008640}} list = 0x7f2ddc349560 inSenderThread = <optimized out> highestConnectionId = 10 signalVector = 0x7f2ddc349510 currentThreadId = 0x7f2d703ff6c0 sp = <optimized out> signal_spy_set = 0x0 empty_argv = {0x0} senderDeleted = false #19 0x00007f2e3e75c089 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f2e3eca06c0 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4206 signal_index = <optimized out> #20 0x00007f2e3e6b5ba4 in QIODevice::readyRead (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qiodevice.cpp:156 #21 0x00007f2d70e83beb in QTlsPrivate::TlsCryptographOpenSSL::transmit (this=0x7f2e0402c840) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/plugins/tls/openssl/qtls_openssl.cpp:1059 data = {<QVLABase<char>> = {<QVLABaseBase> = {a = 4096, s = 2800, ptr = 0x7f2d703fd308}, <No data fields>}, <QVLAStorage<1, 1, 4096>> = {array = "#B'\233\331\352\301e\327\371\b\202\272\221cNz\021\016\3111B\372\232EK\330\307-T\254p\243\360\\\362E\tsgo\213\353\302'\002\204&\206=\234\257\3571\301\305u\223\215\v\213d\337\v\021A]\272D\245\2248\352\277\317L\367\20196e\360y\362\233\275}\307=\262\273\2239l\336\370\217\202j\213/류\023\264\334\351D1\344N\365\017u\a\217\225\324Z%\255v\221\2230\362(>/X[\373}(6\301\277e\260\360\227\000\253\372\207\220~\253*\245\337m\006\372}FI\335,\036\332\352v\"§\032P\216\0345\266\357\t\243\217\222D\316ɝ\337un\311EE6\tw;\021\320\r\250\250\266`v\265\254\276˼"...}, <No data fields>} pendingBytes = <optimized out> readBytes = 1378 bytesToRead = <optimized out> writeBuffer = @0x7f2e0409a888: {m_buf = 0x7f2e0409a930} buffer = @0x7f2e0409a880: {m_buf = 0x7f2e0409a8c8} plainSocket = <optimized out> emittedBytesWritten = @0x7f2e0409a981: false transmitting = <optimized out> #22 0x00007f2e3e765c5a in doActivate<false> (sender=0x7f2e04092260, signal_index=3, argv=0x7f2d703fe3c8, argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4158 method_relative = <optimized out> callFunction = <optimized out> methodIndex = 0 receiver = 0x7f2e040b0800 td = <optimized out> receiverInSameThread = <optimized out> senderData = {previous = 0x0, receiver = 0x7f2e040b0800, sender = 0x7f2e04092260, signal = 3} c = 0x7f2e040aaff0 connections = {d = {ptr = 0x7f2e040a70d0}} list = 0x7f2ddc36b930 inSenderThread = <optimized out> highestConnectionId = 11 signalVector = 0x7f2ddc36b8e0 currentThreadId = 0x7f2d703ff6c0 sp = <optimized out> signal_spy_set = 0x0 empty_argv = {0x0} senderDeleted = false #23 0x00007f2e3e75c089 in QMetaObject::activate (sender=sender@entry=0x7f2e04092260, m=m@entry=0x7f2e3eca06c0 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qobject.cpp:4206 signal_index = <optimized out> #24 0x00007f2e3e6b5ba4 in QIODevice::readyRead (this=this@entry=0x7f2e04092260) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qiodevice.cpp:156 #25 0x00007f2e3d886a27 in QAbstractSocketPrivate::emitReadyRead (this=0x7f2e040a0d80, channel=0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/socket/qabstractsocket.cpp:1222 r = {varRef = <optimized out>, oldValue = <optimized out>} q = <optimized out> #26 QAbstractSocketPrivate::canReadNotification (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/socket/qabstractsocket.cpp:657 q = <optimized out> #27 0x00007f2e3d88f5a9 in QReadNotifier::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/network/socket/qnativesocketengine.cpp:1238 #28 0x00007f2e40c3d97f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7f2e040a7100, e=0x7f2d703fe500) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3303 consumed = false filtered = false threadData = <optimized out> #29 0x00007f2e3e6f9f38 in QCoreApplication::notifyInternal2 (receiver=0x7f2e040a7100, event=0x7f2d703fe500) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1106 d = <optimized out> threadData = 0x7f2ddc06d8b0 selfRequired = <optimized out> result = false cbdata = {0x7f2e040a7100, 0x7f2d703fe500, 0x7f2d703fe4af} scopeLevelCounter = {threadData = 0x7f2ddc06d8b0} #30 0x00007f2e3e6fa19d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1546 #31 0x00007f2e3ea10b6e in socketNotifierSourceDispatch (source=0x7f2e04001340) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:77 p = <optimized out> event = {_vptr.QEvent = 0x7f2e3eca1b50 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2e3eb19928 <QEvent::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>+1512>, data = 0x7f2e3eb19340 <QEvent::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>>, static_metacall = 0x0, relatedMetaObjects = 0x0, metaTypes = 0x7f2e3ec9cb40 <QEvent::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>>, extradata = 0x0}}, t = 50, m_posted = false, m_spont = false, m_accept = true, m_unused = false, m_reserved = 0, m_inputEvent = 0, m_pointerEvent = 0, m_singlePointEvent = 0} src = 0x7f2e04001340 #32 0x00007f2e3d172880 in g_main_dispatch (context=0x7f2e04000ef0) at ../glib/gmain.c:3398 dispatch = 0x7f2e3ea10ae0 <socketNotifierSourceDispatch(GSource*, GSourceFunc, gpointer)> prev_source = 0x0 begin_time_nsec = 5628393100076 was_in_call = 0 user_data = 0x0 callback = 0x0 cb_funcs = 0x0 cb_data = 0x0 need_destroy = <optimized out> source = 0x7f2e04001340 current = 0x7f2e040017e0 i = 1 #33 g_main_context_dispatch_unlocked (context=0x7f2e04000ef0) at ../glib/gmain.c:4249 #34 0x00007f2e3d17b7c8 in g_main_context_iterate_unlocked (context=context@entry=0x7f2e04000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314 max_priority = 2147483647 timeout_usec = -1 some_ready = 1 nfds = 2 allocated_nfds = <optimized out> fds = <optimized out> begin_time_nsec = <optimized out> #35 0x00007f2e3d17b973 in g_main_context_iteration (context=0x7f2e04000ef0, may_block=1) at ../glib/gmain.c:4379 retval = <optimized out> #36 0x00007f2e3ea0f9ad in QEventDispatcherGlib::processEvents (this=0x7f2e04000e00, flags=...) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399 d = 0x7f2e04000e20 canWait = <optimized out> savedFlags = {<QtPrivate::QFlagsStorageHelper<QEventLoop::ProcessEventsFlag, 4>> = {<QtPrivate::QFlagsStorage<QEventLoop::ProcessEventsFlag>> = {static IntegerSize = 4, i = 0}, <No data fields>}, <No data fields>} result = <optimized out> #37 0x00007f2e3e707b03 in QEventLoop::exec (this=this@entry=0x7f2d703fe780, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/global/qflags.h:77 d = 0x7f2e040016e0 threadData = <optimized out> locker = {m_mutex = 0x7f2ddc2bbaf8, m_isLocked = false} ref = {d = <optimized out>, locker = <optimized out>, exceptionCaught = <optimized out>} app = <optimized out> #38 0x00007f2e3e82808d in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/thread/qthread.cpp:659 d = 0x7f2ddc2bba80 status = 0x7f2d703ff658 locker = {m_mutex = 0x7f2ddc2bbaf8, m_isLocked = false} eventLoop = {<QObject> = {_vptr.QObject = 0x7f2e3eca1c70 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2e3eb1d7f0 <QObject::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN7QObjectE_t>+272>, data = 0x7f2e3eb1d6e0 <QObject::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN7QObjectE_t>>, static_metacall = 0x7f2e3e7624c0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7f2e3eca3a60 <QObject::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN7QObjectE_t>>, extradata = 0x0}}, d_ptr = {d = 0x7f2e040016e0}}, static staticMetaObject = {d = {superdata = {direct = 0x55c42d70b4c0 <QObject::staticMetaObject>}, stringdata = 0x7f2e3eb1ab0c <QEventLoop::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN10QEventLoopE_t>+236>, data = 0x7f2e3eb1aa20 <QEventLoop::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN10QEventLoopE_t>>, static_metacall = 0x7f2e3e7076e0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7f2e3eca1d20 <QEventLoop::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN10QEventLoopE_t>>, extradata = 0x0}}} returnCode = <optimized out> #39 0x00007f2e3e8c5b9f in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:434 #40 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:366 #41 QThreadPrivate::start (arg=0x7f2ddc33a2d0) at /usr/src/debug/qt6-qtbase-6.9.1-1.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:394 __clframe = {__cancel_routine = <optimized out>, __cancel_arg = 0x7f2ddc33a2d0, __do_it = 1, __cancel_type = <optimized out>} thr = 0x7f2ddc33a2d0 data = <optimized out> #42 0x00007f2e3e07f1d4 in start_thread (arg=<optimized out>) at pthread_create.c:448 ret = <optimized out> pd = <optimized out> out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139833133496000, -169420029269424201, 139833133496000, 139835142559680, 2, 139835142559943, -169420029294590025, -170990475503384649}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> #43 0x00007f2e3e101cec in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
The backtrace is similar to, but not identical to bug 505490