Bug 474893 - Plasma crashed in BluezQt::PendingCall::finished() after disconnecting Bluetooth earphones
Summary: Plasma crashed in BluezQt::PendingCall::finished() after disconnecting Blueto...
Status: REPORTED
Alias: None
Product: frameworks-bluez-qt
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.108.0
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: David Rosca
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-09-26 09:38 UTC by Riccardo Robecchi
Modified: 2024-04-17 21:16 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
New crash information added by DrKonqi (228.91 KB, text/plain)
2023-09-26 09:38 UTC, Riccardo Robecchi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Riccardo Robecchi 2023-09-26 09:38:39 UTC
Application: plasmashell (5.27.7)

Qt Version: 5.15.10
Frameworks Version: 5.108.0
Operating System: Linux 6.5.2-x64v3-xanmod1 x86_64
Windowing System: X11
Distribution: KDE neon 5.27
DrKonqi: 5.27.7 [CoredumpBackend]

-- Information about the crash:
Plasma crashed after I disconnected Bluetooth earphones. The pairing process seemed to stall, as the earphones were reported as "connected" but were not available as a sound device, so I disconnected them and Plasma crashed.

The reporter is unsure if this crash is reproducible.

-- Backtrace (Reduced):
#6  0x00007f4203ccc765 in QStringHash<QPair<int, QQmlPropertyData*> >::findNode<QV4::String const*>(QV4::String const* const&) const (key=<synthetic pointer>: <optimized out>, this=0x5594b4b98300) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/qml/ftw/qstringhash_p.h:699
#7  QLinkedStringHash<QPair<int, QQmlPropertyData*> >::find<QV4::String const*>(QV4::String const* const&) const (key=<synthetic pointer>: <optimized out>, this=0x5594b4b98300) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/qml/ftw/qlinkedstringhash_p.h:125
#8  QQmlPropertyCache::property<QV4::String const*>(QV4::String const* const&, QObject*, QQmlContextData*) const (context=0x5594bb8d5150, object=0x5594b23c7e70, key=<synthetic pointer>: <optimized out>, this=0x5594b4b982c0) at qml/qqmlpropertycache_p.h:117
#9  qQmlPropertyCacheProperty<QV4::String const*>(QJSEngine*, QObject*, QV4::String const*, QQmlContextData*, QQmlPropertyData&) (engine=<optimized out>, obj=obj@entry=0x5594b23c7e70, name=0x7f41cf3c05b0, context=context@entry=0x5594bb8d5150, local=...) at qml/qqmlpropertycache.cpp:1053
#10 0x00007f4203cc6dc9 in QQmlPropertyCache::property(QJSEngine*, QObject*, QV4::String const*, QQmlContextData*, QQmlPropertyData&) (engine=<optimized out>, obj=obj@entry=0x5594b23c7e70, name=<optimized out>, context=context@entry=0x5594bb8d5150, local=...) at qml/qqmlpropertycache.cpp:1067


Reported using DrKonqi
Comment 1 Riccardo Robecchi 2023-09-26 09:38:40 UTC
Created attachment 161882 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2023-09-28 15:58:34 UTC
Thread 1 (Thread 0x7f41fdebc9c0 (LWP 2920)):
[KCrash Handler]
#6  0x00007f4203ccc765 in QStringHash<QPair<int, QQmlPropertyData*> >::findNode<QV4::String const*>(QV4::String const* const&) const (key=<synthetic pointer>: <optimized out>, this=0x5594b4b98300) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/qml/ftw/qstringhash_p.h:699
#7  QLinkedStringHash<QPair<int, QQmlPropertyData*> >::find<QV4::String const*>(QV4::String const* const&) const (key=<synthetic pointer>: <optimized out>, this=0x5594b4b98300) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/qml/ftw/qlinkedstringhash_p.h:125
#8  QQmlPropertyCache::property<QV4::String const*>(QV4::String const* const&, QObject*, QQmlContextData*) const (context=0x5594bb8d5150, object=0x5594b23c7e70, key=<synthetic pointer>: <optimized out>, this=0x5594b4b982c0) at qml/qqmlpropertycache_p.h:117
#9  qQmlPropertyCacheProperty<QV4::String const*>(QJSEngine*, QObject*, QV4::String const*, QQmlContextData*, QQmlPropertyData&) (engine=<optimized out>, obj=obj@entry=0x5594b23c7e70, name=0x7f41cf3c05b0, context=context@entry=0x5594bb8d5150, local=...) at qml/qqmlpropertycache.cpp:1053
#10 0x00007f4203cc6dc9 in QQmlPropertyCache::property(QJSEngine*, QObject*, QV4::String const*, QQmlContextData*, QQmlPropertyData&) (engine=<optimized out>, obj=obj@entry=0x5594b23c7e70, name=<optimized out>, context=context@entry=0x5594bb8d5150, local=...) at qml/qqmlpropertycache.cpp:1067
#11 0x00007f4203bae7af in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) (value=..., revisionMode=QV4::QObjectWrapper::CheckRevision, name=<optimized out>, object=0x5594b23c7e70, qmlContext=0x5594bb8d5150, engine=0x5594af95c400) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/jsruntime/qv4engine_p.h:195
#12 QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) (engine=engine@entry=0x5594af95c400, qmlContext=qmlContext@entry=0x5594bb8d5150, object=0x5594b23c7e70, name=<optimized out>, revisionMode=revisionMode@entry=QV4::QObjectWrapper::CheckRevision, value=...) at jsruntime/qv4qobjectwrapper.cpp:418
#13 0x00007f4203b8371a in QV4::QQmlContextWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) (m=<optimized out>, id=..., value=..., receiver=<optimized out>) at jsruntime/qv4qmlcontext.cpp:431
#14 0x00007f4203b33ed3 in QV4::Object::put(QV4::StringOrSymbol*, QV4::Value const&, QV4::Value*) (receiver=0x7f41cf3c05a0, v=..., name=0x7f41cf3c0598, this=0x7f41cf3c05a0) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/jsruntime/qv4string_p.h:280
#15 QV4::ExecutionContext::setProperty(QV4::String*, QV4::Value const&) (this=<optimized out>, name=0x7f41cf3c0598, value=...) at jsruntime/qv4context.cpp:313
#16 0x00007f4203bd95cb in QV4::Runtime::StoreNameSloppy::call(QV4::ExecutionEngine*, int, QV4::Value const&) (engine=0x5594af95c400, nameIndex=<optimized out>, value=...) at jsruntime/qv4runtime.cpp:990
#17 0x00007f4203bc79c8 in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7ffd04ce11b0, engine=0x5594af95c400, code=0x7f41b150000b "/\006\001") at jsruntime/qv4vme_moth.cpp:602
#18 0x00007f4203bccf5f in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7ffd04ce11b0, engine=engine@entry=0x5594af95c400) at jsruntime/qv4vme_moth.cpp:466
#19 0x00007f4203b5fc68 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 jsruntime/qv4functionobject.cpp:528
#20 0x00007f4203bb17cb in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=1, argv=0x7f41cf3c04d8, thisObject=0x7f41cf3c04d0, this=0x7f41cf3c04c8) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/jsruntime/qv4functionobject_p.h:202
#21 QV4::FunctionObject::call(QV4::JSCallData const&) const (data=<synthetic pointer>..., this=0x7f41cf3c04c8) at ../../include/QtQml/5.15.10/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:112
#22 QV4::QObjectSlotDispatcher::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, metaArgs=0x7ffd04ce1420, ret=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:937
#23 0x00007f42026f48f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd04ce1420, r=0x5594b9e54910, this=0x5594bc4802b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#24 doActivate<false>(QObject*, int, void**) (sender=0x5594b9e54910, signal_index=3, argv=0x7ffd04ce1420) at kernel/qobject.cpp:3925
#25 0x00007f41b14602b3 in BluezQt::PendingCall::finished(BluezQt::PendingCall*) () at /lib/x86_64-linux-gnu/libKF5BluezQt.so.6
#26 0x00007f41b149b262 in  () at /lib/x86_64-linux-gnu/libKF5BluezQt.so.6
#27 0x00007f42026f48f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd04ce1650, r=0x5594b66c7c40, this=0x5594bc48e5c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#28 doActivate<false>(QObject*, int, void**) (sender=0x5594b264d080, signal_index=3, argv=0x7ffd04ce1650) at kernel/qobject.cpp:3925
#29 0x00007f42031e0af3 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () at /lib/x86_64-linux-gnu/libQt5DBus.so.5
#30 0x00007f42026ea39e in QObject::event(QEvent*) (this=0x5594b264d080, e=0x5594b011c6d0) at kernel/qobject.cpp:1347
#31 0x00007f420336c763 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5594b264d080, e=0x5594b011c6d0) at kernel/qapplication.cpp:3640
#32 0x00007f42026bce4a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5594b264d080, event=0x5594b011c6d0) at kernel/qcoreapplication.cpp:1064
#33 0x00007f42026bff47 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x5594af238ec0) at kernel/qcoreapplication.cpp:1821
#34 0x00007f4202716ce7 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x5594af39f8e0) at kernel/qeventdispatcher_glib.cpp:277
#35 0x00007f420117fd3b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f42011d5258 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f420117d3e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f4202716338 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5594af3a4760, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#39 0x00007f42026bb76b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd04ce1a40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#40 0x00007f42026c3d14 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#41 0x00005594ada3da6b in  ()
#42 0x00007f4201c29d90 in __libc_start_call_main (main=main@entry=0x5594ada3cb50, argc=argc@entry=2, argv=argv@entry=0x7ffd04ce1d18) at ../sysdeps/nptl/libc_start_call_main.h:58
#43 0x00007f4201c29e40 in __libc_start_main_impl (main=0x5594ada3cb50, argc=2, argv=0x7ffd04ce1d18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd04ce1d08) at ../csu/libc-start.c:392
#44 0x00005594ada3db95 in  ()



Specifically:

#24 doActivate<false>(QObject*, int, void**) (sender=0x5594b9e54910, signal_index=3, argv=0x7ffd04ce1420) at kernel/qobject.cpp:3925
#25 0x00007f41b14602b3 in BluezQt::PendingCall::finished(BluezQt::PendingCall*) () at /lib/x86_64-linux-gnu/libKF5BluezQt.so.6
#26 0x00007f41b149b262 in  () at /lib/x86_64-linux-gnu/libKF5BluezQt.so.6
#27 0x00007f42026f48f4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd04ce1650, r=0x5594b66c7c40, this=0x5594bc48e5c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
Comment 3 mydarkstar 2024-04-17 21:14:24 UTC
This may be a duplicate of bug 465031, as both seem to crash in BluezQt::PendingCall::finished.

I experienced the same issue in bug 485618. However, I'm not able to reliably reproduce it.
Comment 4 mydarkstar 2024-04-17 21:16:35 UTC
Bug 482565 seems to crash in the same way. However, that one deals with connecting a Bluetooth audio device.
I believe it is fair to assume that this crash may occur on both disconnection and connection.