Bug 513620 - Plasmashell hangs for ~20 sec. after login when a phone paired via kdeconnect is connected to Wifi
Summary: Plasmashell hangs for ~20 sec. after login when a phone paired via kdeconnect...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-performance (other bugs)
Version First Reported In: master
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: efficiency-and-performance
Depends on:
Blocks:
 
Reported: 2025-12-20 17:25 UTC by Jan Rathmann
Modified: 2025-12-22 18:15 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Rathmann 2025-12-20 17:25:49 UTC
SUMMARY
Most of the time, after logging into my Plasma session, there is a ~20 sec. long period where plasmashell hangs (Panel is not responsive). It happens only if my phone that I paired via kdeconnect is connected to my Wifi. The backtrace of the hanging plasmashell gives a hint to kdeconnect too.

STEPS TO REPRODUCE
1. Ensure my phone is connected to Wifi.
2. Log into Plasma session. 
3. Wait for ~20-30 seconds. During this time, the panel stays responsive (I check it by hovering over the pinned apps with the mouse to see if the tooltips still change).

OBSERVED RESULT
After those ~20-30 seconds, the panel will become unresponsive, plasmashell hangs. This state persists for ~20 seconds (backtrace below). Then plasmashell unfreezes and the panel becomes responsive again as usual.

EXPECTED RESULT
Plasmashell does not hang :)

SOFTWARE/OS VERSIONS
Distro: Kubuntu 25.10 + Backports- & Backports-Beta-PPA                                                                                                                                                                                                                                                                                             
KDE Plasma Version: 6.5.4
KDE Frameworks Version: 6.20.0
KDE Connect Version: 25.08.3
Qt Version: 6.9.2
Graphics platform: Wayland

ADDITIONAL INFORMATION
* I can't reproduce the hang when the phone is offline, or unpaired.
* I have been seeing this kind of hangs for more than 6 months, when I was still using Kubuntu 25.04 (or even 24.10? Sorry for taking such a long time to write a report.)
* Deleting all kdeconnect related config/state files (that I could find) from my home dir made no difference.
* Phone is a Fairphone 5 with /e/ OS, version 3.2-a15-20251022539003-official-FP5. KDE Connect Android Client is installed from F-Droid.

BACKTRACE of plasmashell during hang:
#0  __syscall_cancel_arch ()
    at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x0000741aed4a00ac in __internal_syscall_cancel (
    a1=a1@entry=95419285720136, a2=<optimized out>, a3=a3@entry=580844608, 
    a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202)
    at ./nptl/cancellation.c:49
#2  0x0000741aed4a0807 in __futex_abstimed_wait_common64 (private=0, 
    futex_word=0x56c888a14c48, expected=580844608, op=393, abstime=0x0, 
    cancel=true) at ./nptl/futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=0x56c888a14c48, 
    expected=580844608, clockid=0, abstime=0x0, private=0, cancel=true)
    at ./nptl/futex-internal.c:87
#4  __GI___futex_abstimed_wait_cancelable64 (
    futex_word=futex_word@entry=0x56c888a14c48, expected=expected@entry=0, 
    clockid=clockid@entry=0, abstime=abstime@entry=0x0, 
    private=private@entry=0) at ./nptl/futex-internal.c:139
#5  0x0000741aed4a3067 in __pthread_cond_wait_common (cond=<optimized out>, 
    mutex=0x56c888a14c00, clockid=0, abstime=0x0)
    at ./nptl/pthread_cond_wait.c:421
#6  ___pthread_cond_wait (cond=<optimized out>, mutex=0x56c888a14c00)
    at ./nptl/pthread_cond_wait.c:453
#7  0x0000741aedf0ca5c in QWaitConditionPrivate::wait (this=0x56c888a14c00, 
    deadline=...)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/thread/qwaitcondition_unix.cpp:67
#8  QWaitCondition::wait (this=this@entry=0x56c8884f3a90, 
    mutex=mutex@entry=0x56c8884f3a88, deadline=...)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/thread/qwaitcondition_unix.cpp:145
#9  0x0000741aeedc58e5 in QDBusPendingCallPrivate::waitForFinished (
    this=0x56c8884f3a40)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/dbus/qdbuspendingcall.cpp:207
#10 0x0000741aeedc5f5a in QDBusPendingReplyBase::argumentAt (
    this=0x7ffd229efe10, index=index@entry=0)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/dbus/qdbuspendingreply.cpp:237
#11 0x0000741a902cc765 in QDBusPendingReply<bool>::argumentAt<0> (
    this=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt6/QtDBus/qdbuspendingreply.h:82
#12 0x0000741a902d13c3 in QDBusPendingReply<bool>::operator bool (
    this=<optimized out>, this=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt6/QtDBus/qdbuspendingreply.h:103
--Type <RET> for more, q to quit, c to continue without paging--c
#13 DevicesModel::passesFilter (this=<optimized out>, dev=<optimized out>)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/interfaces/devicesmodel.cpp:279
#14 DevicesModel::passesFilter (dev=dev@entry=0x741adc010100, 
    this=0x56c887307310)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/interfaces/devicesmodel.cpp:274
#15 0x0000741a902d8156 in DevicesModel::deviceAdded (this=0x56c887307310, 
    id=...)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/interfaces/devicesmodel.cpp:77
#16 DevicesModel::deviceAdded (this=0x56c887307310, id=...)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/interfaces/devicesmodel.cpp:67
#17 0x0000741aedde4a95 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/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qobjectdefs_impl.h:461
#18 doActivate<false> (sender=0x56c886d3c980, signal_index=5, 
    argv=0x7ffd229f0100)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qobject.cpp:4157
#19 0x0000741a902ec9e5 in QMetaObject::activate<void, QString> (
    sender=<optimized out>, mo=<optimized out>, 
    local_signal_index=<optimized out>, ret=<optimized out>, 
    sender=<optimized out>, mo=<optimized out>, 
    local_signal_index=<optimized out>, ret=<optimized out>)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs.h:306
#20 OrgKdeKdeconnectDaemonInterface::deviceAdded (this=<optimized out>, 
    _t1=...)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/obj-x86_64-linux-gnu/interfaces/generated/moc_daemoninterface.cpp:288
#21 OrgKdeKdeconnectDaemonInterface::qt_static_metacall (_o=<optimized out>, 
    _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/obj-x86_64-linux-gnu/interfaces/generated/moc_daemoninterface.cpp:170
#22 0x0000741a902eefe7 in OrgKdeKdeconnectDaemonInterface::qt_metacall (
    this=0x56c886d3c980, _c=<optimized out>, _id=2, _a=0x7ffd229f0308)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/obj-x86_64-linux-gnu/interfaces/generated/moc_daemoninterface.cpp:256
#23 0x0000741a902d539e in DaemonDbusInterface::qt_metacall (
    this=0x56c886d3c980, _c=QMetaObject::InvokeMetaMethod, 
    _id=<optimized out>, _a=0x7ffd229f0308)
    at /usr/src/kdeconnect-25.08.3-0ubuntu1.1~ubuntu25.10~ppa1/obj-x86_64-linux-gnu/interfaces/kdeconnectinterfaces_autogen/include/moc_dbusinterfaces.cpp:114
#24 0x0000741aeed7a75d in QDBusConnectionPrivate::deliverCall (
    this=0x741ae0001700, object=0x56c886d3c980, msg=..., metaTypes=..., 
    slotIdx=7)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/dbus/qdbusintegrator.cpp:1008
#25 0x0000741aeddd61d4 in QObject::event (this=<optimized out>, 
    e=<optimized out>)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qobject.cpp:1432
#26 0x0000741af019d49f in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#27 0x0000741aedd8add8 in QCoreApplication::notifyInternal2 (
    receiver=0x56c886d3c980, event=0x741ae0048600)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qcoreapplication.cpp:1106
#28 0x0000741aedd8ae1d in QCoreApplication::sendEvent (
    receiver=<optimized out>, event=<optimized out>)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qcoreapplication.cpp:1546
#29 0x0000741aedd8b04e in QCoreApplicationPrivate::sendPostedEvents (
    receiver=0x0, event_type=0, data=0x56c885596020)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qcoreapplication.cpp:1891
#30 0x0000741aedff445f in postEventSourceDispatch (s=0x56c88559cc20)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#31 0x0000741aec797bfb in g_main_dispatch (context=0x741ae0000f50)
    at ../../../glib/gmain.c:3565
#32 0x0000741aec799237 in g_main_context_dispatch_unlocked (
    context=0x741ae0000f50) at ../../../glib/gmain.c:4425
#33 g_main_context_iterate_unlocked (context=context@entry=0x741ae0000f50, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:4490
#34 0x0000741aec799423 in g_main_context_iteration (context=0x741ae0000f50, 
    may_block=1) at ../../../glib/gmain.c:4556
#35 0x0000741aedff130d in QEventDispatcherGlib::processEvents (
    this=0x56c88555ec70, flags=...)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#36 0x0000741aedd944c3 in QEventLoop::exec (this=0x7ffd229f0950, flags=...)
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/global/qflags.h:77
#37 0x0000741aedd8dc07 in QCoreApplication::exec ()
    at /usr/src/qt6-base-6.9.2+dfsg-1ubuntu1/src/corelib/kernel/qcoreapplication.cpp:1449
#38 0x000056c85ced36b1 in ?? ()
#39 0x0000741aed42a575 in __libc_start_call_main (
    main=main@entry=0x56c85ced28d0, argc=argc@entry=2, 
    argv=argv@entry=0x7ffd229f0f68)
    at ../sysdeps/nptl/libc_start_call_main.h:58
#40 0x0000741aed42a628 in __libc_start_main_impl (main=0x56c85ced28d0, argc=2, 
    argv=0x7ffd229f0f68, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7ffd229f0f58)
    at ../csu/libc-start.c:360
#41 0x000056c85ced37e5 in ?? ()