Summary: | krunner blocks UI when loading Telepathy contacts runner | ||
---|---|---|---|
Product: | [Unmaintained] telepathy | Reporter: | Dāvis <davispuh> |
Component: | contact-runner | Assignee: | Telepathy Bugs <kde-telepathy-bugs> |
Status: | RESOLVED UNMAINTAINED | ||
Severity: | normal | CC: | davispuh, nate, nicolas.fella, plasma-bugs |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | Future | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Dāvis
2022-03-28 17:41:20 UTC
This seems to be the culprit: #5 0x00007fd4714fd9ac in QDBusInterface::QDBusInterface(QString const&, QString const&, QString const&, QDBusConnection const&, QObject*) () at /usr/lib/libQt5DBus.so.5 #6 0x00007fd35804e975 in KTp::GlobalPresence::GlobalPresence(QObject*) () at /usr/lib/libKTpCommonInternals.so.9 #7 0x00007fd3ec84ddf0 in () at /usr/lib/qt/plugins/kf5/krunner/krunner_ktp_contacts.so #8 0x00007fd3ec84f6c0 in () at /usr/lib/qt/plugins/kf5/krunner/krunner_ktp_contacts.so Do you have KDE's telepathy software installed? (In reply to Nate Graham from comment #1) > This seems to be the culprit: > > #5 0x00007fd4714fd9ac in QDBusInterface::QDBusInterface(QString const&, > QString const&, QString const&, QDBusConnection const&, QObject*) () at > /usr/lib/libQt5DBus.so.5 > #6 0x00007fd35804e975 in KTp::GlobalPresence::GlobalPresence(QObject*) () > at /usr/lib/libKTpCommonInternals.so.9 > #7 0x00007fd3ec84ddf0 in () at > /usr/lib/qt/plugins/kf5/krunner/krunner_ktp_contacts.so > #8 0x00007fd3ec84f6c0 in () at > /usr/lib/qt/plugins/kf5/krunner/krunner_ktp_contacts.so > > Do you have KDE's telepathy software installed? Yeah, but I don't really use it. From backtrace can see that KTP runner waits on QBus which obviously causes this slowdown, but that's just one potential culprit. I would say the real issue is that it blocks UI while loading runners at https://invent.kde.org/frameworks/krunner/-/blob/master/src/runnermanager.cpp#L968 which very likely is slow. The issue is that the initialization is in the main thread done and we run into a DBus timeout.
Though I haven't heard of anyone using this runner, IMHO we should just move it to unmaintained and tell distros to not ship it anymore by default.
> I would say the real issue is that it blocks UI while loading runners
Yeah, but you have to load them somehow and we can not do that in threads. With recent optimizations that will land in Plasma 5.25, the runners will do far less heavy work when being loaded.
Ok, if there is already code improvement in KRunner itself to make this faster, then our only actionable thing is to deprecate the telepathy runner. As far as I can see, Telepathy stuff is still in https://invent.kde.org/network?filter=telepathy getting commits (well, some repos). It doesn't look unmaintained, but I can't see it on kde.org/applications, either... Maybe it's worth having a conversation about this on a mailing list somewhere? As far as I can tell it's hanging while creating the QDBusInterface in https://invent.kde.org/network/ktp-common-internals/-/blob/master/KTp/global-presence.cpp#L48 It could be that the other side (the ktp kded module) is not responding for some reason. Or just the fact that creating a QDBusInterface this way is slow and should not be done. It could well be that this can be easily improved by using a generated interface class, but my motivation to touch KTP code is slim and I'd rather see it buried. But that's just my opinion Okay, for now I just uninstalled telepathy runner. But it's very unfortunate issue because it might not be obvious at all why krunner freezes things and there could be other slow runners aswell. Many people can have them installed without realizing they would cause such issues. Dear user, unfortunately Telepathy is no longer maintained. Please migrate to another solution, e.g. for Jabber a possibility is Kaidan, for Matrix a candidate is NeoChat. |