Bug 505490 - Plasma crashed in QHttp2ProtocolHandler::handleHeadersReceived() when downloading media thumbnail via plasma-browser-integration failed
Summary: Plasma crashed in QHttp2ProtocolHandler::handleHeadersReceived() when downlo...
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Media Player widget (other bugs)
Version First Reported In: 6.3.5
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi, qt-crash
Depends on:
Blocks:
 
Reported: 2025-06-11 19:59 UTC by me
Modified: 2025-09-26 02:55 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/195371/events/89bbc70df6b74e5f8edb944a4494a3e6/


Attachments
New crash information added by DrKonqi (108.45 KB, text/plain)
2025-06-11 19:59 UTC, me
Details

Note You need to log in before you can comment on or make changes to this bug.
Description me 2025-06-11 19:59:15 UTC
Application: plasmashell (6.3.5)

ApplicationNotResponding [ANR]: false
Qt Version: 6.9.1
Frameworks Version: 6.14.0
Operating System: Linux 6.15.1-arch1-2 x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 6.3.5 [CoredumpBackend]

-- Information about the crash:
Not sure if the description in the title is usefull so I made sure to install the debug symbols to generate a proper crash report

The crash does not seem to be reproducible.

-- Backtrace (Reduced):
#5  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopedpointer.h:110
[...]
#8  QHttp2ProtocolHandler::handleHeadersReceived (this=0x7f41a4057340, headers=..., endStream=false) at /usr/src/debug/qt6-base/qtbase/src/network/access/qhttp2protocolhandler.cpp:315
#9  0x00007f42097d37ef in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4146
[...]
#12 QHttp2Stream::headersReceived (this=0x7f41a400b250, _t1=std::vector of length 18, capacity 32 = {...}, _t2=<optimized out>) at /usr/src/debug/qt6-base/build/src/network/Network_autogen/include/moc_qhttp2connection_p.cpp:296


Reported using DrKonqi
Comment 1 me 2025-06-11 19:59:17 UTC
Created attachment 182199 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 David Redondo 2025-06-12 08:38:47 UTC
Do you use a some custom applets? Not sure why we would do network stuff
Comment 3 David Redondo 2025-06-12 08:40:29 UTC
Actually from sentry:

file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/ToolTipInstance.qml:330:9: QML Image: Error decoding: https://i.ytimg.com/vi/eK6lKmU-kYM/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFr…

Why are we trying to download an image from the taskmanager? 

Which app did you clock on?
Comment 4 me 2025-06-12 18:43:10 UTC
(In reply to David Redondo from comment #2)
> Do you use a some custom applets? Not sure why we would do network stuff

I don't use any applets but I use the plasma-browser-integration (6.3.5) package along with the official Plasma Integration extension (https://chromewebstore.google.com/detail/plasma-integration/cimiefiiaegbelhefglklhhakcgmhkai).

(In reply to David Redondo from comment #3)
> Actually from sentry:
> 
> file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/
> ToolTipInstance.qml:330:9: QML Image: Error decoding:
> https://i.ytimg.com/vi/eK6lKmU-kYM/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFr

If this is the culprit error then it should be handled in a way to fail without crashing regardless of how we got there. I'm not a KDE dev so I don't know whether you use exception handling or error code checking but its possible to fail gracefully in either case.

> Why are we trying to download an image from the taskmanager? 

My guess regarding the image is that the Plasma Integration extension is sending the currently playing video thumbnail to the "Media Player" in the system tray which is failing to decode the image. Here is a screenshot showing what I mean:
https://i.postimg.cc/bN9rrYds/Plasma-integration-thumnail-decode.jpg

> Which app did you clock on?

I think the active window was Dolphin or Alacritty (terminal) and I was switching to Brave (browser) by clicking on the task manager.
Comment 5 David Redondo 2025-06-13 07:02:11 UTC
Thank you for the info.
Comment 6 Nate Graham 2025-06-16 16:25:28 UTC
(In reply to me from comment #4)
> My guess regarding the image is that the Plasma Integration extension is
> sending the currently playing video thumbnail to the "Media Player" in the
> system tray which is failing to decode the image.

Yes, that has happened in the past, in fact.
Comment 7 Bandhan Pramanik 2025-07-17 14:58:03 UTC
This has happened in KMail too, while trying to send an email.
Comment 8 me 2025-07-17 15:38:18 UTC
(In reply to me from comment #4)
> My guess regarding the image is that the Plasma Integration extension is
> sending the currently playing video thumbnail to the "Media Player" in the
> system tray which is failing to decode the image. Here is a screenshot
> showing what I mean:
> https://i.postimg.cc/bN9rrYds/Plasma-integration-thumnail-decode.jpg

The image is no longer available at the old link, refer to this link instead:
https://i.postimg.cc/Z5BfsYJc/Plasma-integration-thumnail-decode.jpg
Comment 9 Denis Gorodnichev 2025-08-01 12:59:01 UTC
I got similar crash.

Operating System: Gentoo Linux 2.17
KDE Plasma Version: 6.4.3
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1
Kernel Version: 6.15.8-gentoo-dist (64-bit)
Graphics Platform: Wayland
Processors: 8 × 11th Gen Intel® Core™ i7-1185G7 @ 3.00GHz
Memory: 32 GiB of RAM (31.0 GiB usable)
Graphics Processor: Intel® Iris® Xe Graphics



#0  0x00007f03d1ed189c in ??? () at /usr/lib64/libc.so.6
#1  0x00007f03d1e7b396 in raise () at /usr/lib64/libc.so.6
#2  0x00007f03d5137e92 in KCrash::defaultCrashHandler(int) () at /usr/lib64/libKF6Crash.so.6
#3  0x00007f03d1e7b4c0 in <signal handler called> () at /usr/lib64/libc.so.6
#4  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/tools/qscopedpointer.h:110
#5  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=...) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/global/qtclasshelpermacros.h:137
#6  QHttpNetworkReply::d_func (this=0x0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/access/qhttpnetworkreply_p.h:159
#7  QHttp2ProtocolHandler::handleHeadersReceived (this=0x7f02a804ec50, headers=<error reading variable: Cannot access memory at address 0x7f02a802f960>, endStream=false)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/access/qhttp2protocolhandler.cpp:315
#8  0x00007f03d2702ecb in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=0x7f02a804ec50, a=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7f02afffd2e0
#9  doActivate<false> (sender=0x7f02a8026770, signal_index=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7f02afffd2dc
#10 0x00007f03d26be5f4 in QMetaObject::activate
    (sender=sender@entry=0x7f02a8026770, m=m@entry=0x7f03d14fdd80 <QHttp2Stream::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7f02afffd3a0)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4206
#11 0x00007f03d13ca6d0 in QMetaObject::activate<void, std::vector<HPack::HeaderField, std::allocator<HPack::HeaderField> >, bool> (sender=0x7f02a8026770, mo=0x7f03d14fdd80 <QHttp2Stream::staticMetaObject>, local_signal_index=0, ret=0x0)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobjectdefs.h:306
#12 QHttp2Stream::headersReceived (this=0x7f02a8026770, _t1=<error reading variable: Cannot access memory at address 0x7f02a802f960>, _t2=<optimized out>)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1_build/src/network/Network_autogen/include/moc_qhttp2connection_p.cpp:296
#13 QHttp2Stream::handleHEADERS (this=0x7f02a8026770, frameFlags=..., headers=<error reading variable: Cannot access memory at address 0x7f02a802f960>)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/access/qhttp2connection.cpp:718
#14 0x00007f03d13f65b2 in QHttp2Connection::handleContinuedHEADERS (this=0x7f02a802f940) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/access/qhttp2connection.cpp:1931
#15 0x00007f03d13f7658 in QHttp2Connection::handleReadyRead (this=0x7f02a802f940) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/access/qhttp2connection.cpp:1172
#16 0x00007f03d2702ecb in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=0x7f02a802c488, a=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7f02afffd5a0
#17 doActivate<false> (sender=0x7f033c38c340, signal_index=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7f02afffd59c
#18 0x00007f03d26be5f4 in QMetaObject::activate
    (sender=<optimized out>, m=m@entry=0x7f03d29d19a0 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4206
#19 0x00007f03d27102a4 in QIODevice::readyRead (this=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1_build/src/corelib/Core_autogen/include/moc_qiodevice.cpp:156
#20 0x00007f02dc5b8b50 in QTlsPrivate::TlsCryptographOpenSSL::transmit (this=0x7f02a805ca40) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/plugins/tls/openssl/qtls_openssl.cpp:1059
#21 0x00007f03d270311d in doActivate<false> (sender=0x7f02a80188f0, signal_index=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7f02afffe77c
#22 0x00007f03d26be5f4 in QMetaObject::activate
    (sender=sender@entry=0x7f02a80188f0, m=m@entry=0x7f03d29d19a0 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0)
    at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4206
#23 0x00007f03d27102a4 in QIODevice::readyRead (this=this@entry=0x7f02a80188f0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1_build/src/corelib/Core_autogen/include/moc_qiodevice.cpp:156
#24 0x00007f03d1444fef in QAbstractSocketPrivate::emitReadyRead (this=0x7f02a80081d0, channel=0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/socket/qabstractsocket.cpp:1222
#25 QAbstractSocketPrivate::canReadNotification (this=0x7f02a80081d0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/socket/qabstractsocket.cpp:657
#26 0x00007f03d14756ba in QAbstractSocketEngine::readNotification (this=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/socket/qabstractsocketengine.cpp:120
#27 QReadNotifier::event (this=<optimized out>, e=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/network/socket/qnativesocketengine.cpp:1238
#28 0x00007f03d4b6a5a4 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7f02a801d550, e=0x7f02afffe8c0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:3303
#29 0x00007f03d271b9a8 in QCoreApplication::notifyInternal2 (receiver=0x7f02a801d550, event=0x7f02afffe8c0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#30 0x00007f03d271bb6d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1546
#31 0x00007f03d24e85f0 in socketNotifierSourceDispatch (source=0x7f02a8001090) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:77
#32 0x00007f03d10d8b45 in g_main_dispatch (context=context@entry=0x7f02a8000c60) at ../glib-2.84.3/glib/gmain.c:3398
#33 0x00007f03d10dbe77 in g_main_context_dispatch_unlocked (context=0x7f02a8000c60) at ../glib-2.84.3/glib/gmain.c:4249
#34 g_main_context_iterate_unlocked (context=context@entry=0x7f02a8000c60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.84.3/glib/gmain.c:4314
#35 0x00007f03d10dc5e0 in g_main_context_iteration (context=0x7f02a8000c60, may_block=1) at ../glib-2.84.3/glib/gmain.c:4379
#36 0x00007f03d24ccd21 in QEventDispatcherGlib::processEvents (this=0x7f02a8000b70, flags=...) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:401
#37 0x00007f03d274914a in QEventLoop::exec (this=this@entry=0x7f02afffeb00, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/global/qflags.h:77
#38 0x00007f03d26765ce in QThread::exec (this=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/global/qflags.h:77
#39 0x00007f03d2613994 in operator() (__closure=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/thread/qthread_unix.cpp:434
#40 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/thread/qthread_unix.cpp:366
#41 QThreadPrivate::start (arg=0x7f033c33e2f0) at /var/tmp/portage/dev-qt/qtbase-6.9.1-r3/work/qtbase-everywhere-src-6.9.1/src/corelib/thread/qthread_unix.cpp:394
#42 0x00007f03d1ecfbf1 in ??? () at /usr/lib64/libc.so.6
#43 0x00007f03d1f3d47c in ??? () at /usr/lib64/libc.so.6
Comment 10 lion.weissbach 2025-09-26 02:55:45 UTC
I can confirm this happens to me as well on Plasma 6.4.5 (Wayland Session) on Arch Linux.
Operating System: Arch Linux 
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.18.0
Qt Version: 6.9.2
Kernel Version: 6.16.8-arch2-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 7500F 6-Core Processor
Memory: 34 GB of RAM (33.2 GB usable)
Graphics Processor: AMD Radeon RX 9070 XT
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7E26
System Version: 1.0