Summary: | Plasma 5.24.0 NetworkManager cannot get secrets using DBus when using a proxy | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | steveb <tniagcpm> |
Component: | general | Assignee: | Jan Grulich <jgrulich> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | chermnykh2001, daniel, elman, enrico.tagliavini, jonathan.doman, kde, kde, kdelibs-bugs, lucamilo123123, luigi.toscano, matthew.linux, nate, nicolas.fella, postix, xmhjnathan |
Priority: | NOR | Keywords: | regression |
Version: | 5.24.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=457341 | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/commit/d693026676cc6bf2b7c23e9ff4b620679cf15d10 | Version Fixed In: | 5.26.0, 5.24.7 |
Sentry Crash Report: |
Description
steveb
2022-02-11 01:00:49 UTC
I have used "dbus-monitor --system" to investigate.
The call to GetSecrets does not get a reply:
> method call time=1644566969.208756 sender=:1.11 -> destination=:1.48 serial=3114 path=/org/freedesktop/NetworkManager/SecretAgent; interface=org.freedesktop.NetworkManager.SecretAgent; member=GetSecrets
In my case :1.48 is /usr/bin/kded5 and it should respond to interface=org.freedesktop.NetworkManager.SecretAgent
On another working machine (kubuntu 21.10, 5.22.5, 5.86) the method reply contains the secret (the password).
Using "d-feet" I find that viewing any DBus named "org.kde..." or ":1.xxx" for any kde related process hangs "Introspecting..."
Neither the Name: or Unique name: fields are populated.
New here, hope my comment is useful. If I violate the rules, please tell me... This happens on my Arch Linux. Here is my journalctl: https://fars.ee/lZ7A In addition, if I manage to keep my WiFi password not encrypted I can connect to it. After downgrading plasma-desktop and plasma-workspace to 5.23.5 (in the meanwhile the plasma-nm is still 5.24.0) the problem is gone. So maybe the problem isn't related to plasma-nm? Operating System: Arch Linux KDE Plasma Version: 5.24.0 KDE Frameworks Version: 5.90.0 Qt Version: 5.15.2 Kernel Version: 5.16.8-arch1-1 (64-bit) Graphics Platform: X11 I can't reproduce this, wifi and VPN passwords work fine on all of my systems (In reply to zhaozihanrxh from comment #2) > This happens on my Arch Linux. Here is my journalctl: https://fars.ee/lZ7A Relevant looking part of the logs: 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <info> [1644821268.8667] device (wlp0s20f3): state change: prepare -> config (reason 'none', sys-iface-state: 'managed') 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <info> [1644821268.8670] device (wlp0s20f3): Activation: (wifi) access point 'HONOR 9X HULK' has security, but secrets are required. 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <info> [1644821268.8670] device (wlp0s20f3): state change: config -> need-auth (reason 'none', sys-iface-state: 'managed') 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <warn> [1644821268.8675] device (wlp0s20f3): no secrets: No agents were available for this request. 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <info> [1644821268.8675] device (wlp0s20f3): state change: need-auth -> failed (reason 'no-secrets', sys-iface-state: 'managed') 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <info> [1644821268.8677] manager: NetworkManager state is now DISCONNECTED 2月 14 14:47:48 ME-HASEE NetworkManager[525]: <warn> [1644821268.8679] device (wlp0s20f3): Activation: failed for connection 'HONOR 9X HULK' An upgrade today to Plasma 5.24.1 & Frameworks 5.91.0 has not changed behavior. Nicholas, See Comment 1 - It's a problem with KDED, where it is not responding properly to D-Bus message. Looking at KDED source, it possibly could be that the KDED plugins are not being loaded properly? I can not tell. How can I see Qt logger messages? If I can enable & see them, I might be able to see what is going on. (In reply to steveb from comment #5) > Looking at KDED source, it possibly could be that the KDED plugins are not > being loaded properly? I can not tell. You can check that using "qdbus org.kde.kded5 /kded org.kde.kded5.loadedModules", make sure it contains networkmanagement > How can I see Qt logger messages? If I can enable & see them, I might be > able to see what is going on. Using journalctl. Also you can use https://invent.kde.org/utilities/kdebugsettings to control what gets logged (In reply to Nicolas Fella from comment #6) Looking for loaded modules failed, using "qdbus org.kde.kded5 /kded org.kde.kded5.loadedModules" > Error: org.freedesktop.DBus.Error.NoReply Enabling debug messages with kdebugsettings, I see only: > klauncher[1346]: kf.init.klauncher: new app "org.kde.kded5" I would expect to also see DEBUG messages like "Successfully loaded module xxxx", but there are none. The kded plugins are in: /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kded How does kded5 find them? (In reply to steveb from comment #7) > The kded plugins are in: /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kded > How does kded5 find them? The relevant code is at https://invent.kde.org/frameworks/kded/-/blob/master/src/kded.cpp#L132 However, it doesn't sound like the module is not loaded. I tried manually disabling the module in the background services settings and the symptoms are different, the connection attempt fails instantly. It sounds like there is some generic problem with kded, not specifically the network module. this would also match this: > After downgrading plasma-desktop and plasma-workspace to 5.23.5 (in the meanwhile the plasma-nm is still 5.24.0) the problem is gone. So maybe the problem isn't related to plasma-nm? > After downgrading plasma-desktop and plasma-workspace to 5.23.5 (in the meanwhile the plasma-nm is still 5.24.0) the problem is gone.
I'd say it's much more likely to be caused by plasma-workspace than plasma-desktop. Ideally someone would perform a git bisect on it
Yes, plasma-workspace. I tried another user account, and things were working properly with it, so it's not a system thing. I found that there is something in ~/.config that is causing this. Starting with an empty .config directory got everything working again. Can confirm on 5.24.1 archlinux In my case networkmanager works fine, but other components break: - system tray - keyboard layout switching - global menu - notifications - kscreen On clean user account system works fine so the problem is due to some user configuration. Rolling `plasma-workspace` back to 5.23.5 fixes the problem I found that the System Setting "Detect proxy configuration automatically" was causing it for me. Setting is saved in file ~/.config/kioslaverc Removing the file, or changing [Proxy Settings] ProxyType from 3 to 0 will fix a broken system. However, setting the same Proxy setting on a 5.24 system will not break it. (In reply to steveb from comment #12) > I found that the System Setting "Detect proxy configuration automatically" > was causing it for me. > > Setting is saved in file ~/.config/kioslaverc > Removing the file, or changing [Proxy Settings] ProxyType from 3 to 0 will > fix a broken system. > > However, setting the same Proxy setting on a 5.24 system will not break it. This also fixed the problem for me (In reply to steveb from comment #12) > I found that the System Setting "Detect proxy configuration automatically" > was causing it for me. > > Setting is saved in file ~/.config/kioslaverc > Removing the file, or changing [Proxy Settings] ProxyType from 3 to 0 will > fix a broken system. > > However, setting the same Proxy setting on a 5.24 system will not break it. Oh, this workaround also worked for me. (In reply to steveb from comment #12) > I found that the System Setting "Detect proxy configuration automatically" > was causing it for me. > > Setting is saved in file ~/.config/kioslaverc > Removing the file, or changing [Proxy Settings] ProxyType from 3 to 0 will > fix a broken system. > > However, setting the same Proxy setting on a 5.24 system will not break it. I confirm this workaround on Fedora 35 too. I just upgraded from Plasma 5.23.5 to 5.24.2 and Frameworks 5.90 to 5.91 on Fedora 35 and I had to use this workaround too. I had ProxyType=2 and a custom Proxy Config Script. (In reply to Nicolas Fella from comment #6) > (In reply to steveb from comment #5) > > Looking at KDED source, it possibly could be that the KDED plugins are not > > being loaded properly? I can not tell. > You can check that using "qdbus org.kde.kded5 /kded > org.kde.kded5.loadedModules", make sure it contains networkmanagement > > > How can I see Qt logger messages? If I can enable & see them, I might be > > able to see what is going on. > > Using journalctl. Also you can use > https://invent.kde.org/utilities/kdebugsettings to control what gets logged When the ProxyType workaround is not applied, qdbus just gets stuck totally and shows nothing On my system I also noticed apps getting stuck, I then found that kded5 was in a deadlock. I had the geolocation observer try to update the location (for nightcolor), which then did a TransferJob, which in turn used KIO, which would then do the proxy stuff. It then called into ProxyScout, ending up in itself (since kded called to kded), it then called KProtocolManager::proxyType(), which deadlocked trying to acquire a mutex, see backtrace: Disabling either network proxy config or geolocatoin kded modules in systemsettings removed the freeze but obviously that's not a fix. #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007f6e74dce7a5 in QtLinuxFutex::_q_futex(int*, int, int, unsigned long long, int*, int) (val3=0, addr2=0x0, val2=0, val=3, op=0, addr=0x7f6e6b921340 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/thread/qfutex_p.h:133 #2 QtLinuxFutex::futexWait<QBasicAtomicPointer<QMutexData> >(QBasicAtomicPointer<QMutexData>&, QBasicAtomicPointer<QMutexData>::Type) (expectedValue=0x3, futex=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/thread/qfutex_p.h:135 #3 lockInternal_helper<false> (timeout=-1, elapsedTimer=0x0, d_ptr=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/thread/qmutex_linux.cpp:142 #4 QBasicMutex::lockInternal() (this=0x7f6e6b921340 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/thread/qmutex_linux.cpp:159 #5 0x00007f6e74dce99e in QMutex::lock() (this=this@entry=0x7f6e6b921340 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/thread/qmutex.cpp:237 #6 0x00007f6e6b86cd84 in QMutexLocker::QMutexLocker(QBasicMutex*) (m=<optimized out>, this=<optimized out>) at /home/kaiuwe/kde/qt5/include/QtCore/qmutex.h:238 #7 KProtocolManager::proxyType() () at /home/kaiuwe/kde/src/kio/src/core/kprotocolmanager.cpp:379 #8 0x00007f6e6861aedf in KPAC::ProxyScout::startDownload() (this=0x55b7c7ee5bd0) at /home/kaiuwe/kde/src/kio/src/kpac/proxyscout.cpp:180 #9 0x00007f6e6861c2e8 in KPAC::ProxyScout::proxiesForUrl(QString const&, QDBusMessage const&) (this=this@entry=0x55b7c7ee5bd0, checkUrl=..., msg=...) at /home/kaiuwe/kde/qt5/include/QtCore/qstringlist.h:116 #10 0x00007f6e6861a1f0 in KPAC::ProxyScout::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x55b7c7ee5bd0, _id=_id@entry=1, _a=_a@entry=0x7ffed342dfc0, _c=QMetaObject::InvokeMetaMethod) at /home/kaiuwe/kde/build/kio/src/kpac/kded_proxyscout_autogen/EWIEGA46WW/moc_proxyscout.cpp:108 #11 0x00007f6e6861a631 in KPAC::ProxyScout::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_a=0x7ffed342dfc0, _id=1, _c=QMetaObject::InvokeMetaMethod, _o=0x55b7c7ee5bd0) at /home/kaiuwe/kde/build/kio/src/kpac/kded_proxyscout_autogen/EWIEGA46WW/moc_proxyscout.cpp:168 #12 KPAC::ProxyScout::qt_metacall(QMetaObject::Call, int, void**) (this=0x55b7c7ee5bd0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffed342dfc0) at /home/kaiuwe/kde/build/kio/src/kpac/kded_proxyscout_autogen/EWIEGA46WW/moc_proxyscout.cpp:168 #13 0x00007f6e753ab54b in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QVector<int> const&, int) (this=<optimized out>, object=<optimized out>, msg=..., metaTypes=..., slotIdx=<optimized out>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:1001 #14 0x00007f6e753b09d7 in QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&) (this=this@entry=0x7f6e64003a00, object=0x55b7c7ee5bd0, flags=241, msg=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:904 #15 0x00007f6e753b10ff in QDBusConnectionPrivate::activateCall(QObject*, int, QDBusMessage const&) (msg=..., flags=<optimized out>, object=<optimized out>, this=0x7f6e64003a00) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:853 --Type <RET> for more, q to quit, c to continue without paging-- #16 QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) (pathStartPos=<optimized out>, msg=..., node=..., this=0x7f6e64003a00) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:1521 #17 QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) (this=0x7f6e64003a00, node=..., msg=..., pathStartPos=<optimized out>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:1447 #18 0x00007f6e753b1a80 in QDBusConnectionPrivate::handleObjectCall(QDBusMessage const&) (this=this@entry=0x7f6e64003a00, msg=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:1596 #19 0x00007f6e753b1cca in QDBusConnectionPrivate::handleMessage(QDBusMessage const&) (amsg=..., this=0x7f6e64003a00) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:579 #20 QDBusConnectionPrivate::handleMessage(QDBusMessage const&) (this=0x7f6e64003a00, amsg=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:537 #21 0x00007f6e753b269d in QDBusConnectionPrivate::sendWithReplyLocal(QDBusMessage const&) (this=this@entry=0x7f6e64003a00, message=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:2099 #22 0x00007f6e753b2fae in QDBusConnectionPrivate::sendWithReplyAsync(QDBusMessage const&, QObject*, char const*, char const*, int) (this=this@entry=0x7f6e64003a00, message=..., receiver=receiver@entry=0x0, returnMethod=returnMethod@entry=0x0, errorMethod=errorMethod@entry=0x0, timeout=timeout@entry=-1) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:2135 #23 0x00007f6e753b412d in QDBusConnectionPrivate::sendWithReply(QDBusMessage const&, int, int) (this=0x7f6e64003a00, message=..., sendMode=1, timeout=-1) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusintegrator.cpp:2068 #24 0x00007f6e7539fa3b in QDBusConnection::call(QDBusMessage const&, QDBus::CallMode, int) const (this=this@entry=0x55b7c80a7038, message=..., mode=mode@entry=QDBus::Block, timeout=<optimized out>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusconnection.cpp:680 #25 0x00007f6e753be592 in QDBusAbstractInterface::callWithArgumentList(QDBus::CallMode, QString const&, QList<QVariant> const&) (this=this@entry=0x7ffed342e990, mode=QDBus::Block, mode@entry=QDBus::AutoDetect, method=..., args=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusabstractinterface.cpp:494 #26 0x00007f6e753bf0ca in QDBusAbstractInterface::doCall(QDBus::CallMode, QString const&, QVariant const*, unsigned long) (this=this@entry=0x7ffed342e990, mode=mode@entry=QDBus::AutoDetect, method=..., args=args@entry=0x7ffed342e9e0, numArgs=numArgs@entry=1) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbusabstractinterface.cpp:921 #27 0x00007f6e6b8704e3 in QDBusAbstractInterface::call<QString>(QString const&, QString&&) (method=..., this=0x7ffed342e990) at /home/kaiuwe/kde/qt5/include/QtDBus/qdbusabstractinterface.h:108 #28 KProtocolManager::proxiesForUrl(QUrl const&) (url=...) at /home/kaiuwe/kde/src/kio/src/core/kprotocolmanager.cpp:565 #29 0x00007f6e6b870e0f in KProtocolManager::slaveProtocol(QUrl const&, QStringList&) (url=..., proxyList=...) at /home/kaiuwe/kde/src/kio/src/core/kprotocolmanager.cpp:666 #30 0x00007f6e6b85ac71 in KIO::SchedulerPrivate::doJob(KIO::SimpleJob*) (this=0x55b7c80ce1a0, job=0x55b7c80c2030) at /home/kaiuwe/kde/src/kio/src/core/scheduler.cpp:922 #31 0x00007f6e6b84187c in KIO::SimpleJobPrivate::simpleJobInit() (this=0x55b7c803ad50) at /home/kaiuwe/kde/src/kio/src/core/simplejob.cpp:37 #32 0x00007f6e6b84f926 in KIO::TransferJob::TransferJob(KIO::TransferJobPrivate&) (this=0x55b7c80c2030, dd=...) --Type <RET> for more, q to quit, c to continue without paging-- at /home/kaiuwe/kde/src/kio/src/core/transferjob.cpp:19 #33 0x00007f6e6b84be1e in KIO::TransferJobPrivate::newJob(QUrl const&, int, QByteArray const&, QByteArray const&, QFlags<KIO::JobFlag>) (flags=..., _staticData=..., packedArgs=..., command=77, url=...) at /home/kaiuwe/kde/qt5/include/QtCore/qsharedpointer_impl.h:565 #34 KIO::http_post(QUrl const&, QByteArray const&, QFlags<KIO::JobFlag>) (url=..., postData=..., flags=flags@entry=...) at /home/kaiuwe/kde/src/kio/src/core/storedtransferjob.cpp:342 #35 0x00007f6e60456781 in Ip::update() (this=0x55b7c800ba10) at /home/kaiuwe/kde/qt5/include/QtCore/qchar.h:102 #36 0x00007f6e6046ad72 in GeolocationProvider::requestUpdate(QFlags<GeolocationProvider::UpdateTrigger>) (this=<optimized out>, triggers=..., triggers@entry=...) at /home/kaiuwe/kde/src/plasma-workspace/dataengines/geolocation/geolocationprovider.cpp:46 #37 0x00007f6e60479f06 in Geolocation::updatePlugins(QFlags<GeolocationProvider::UpdateTrigger>) (this=this@entry=0x55b7c7ff99f0, triggers=triggers@entry=...) at /home/kaiuwe/kde/src/plasma-workspace/dataengines/geolocation/geolocation.cpp:77 #38 0x00007f6e6047a0ca in Geolocation::sourceRequestEvent(QString const&) (this=0x55b7c7ff99f0, name=...) at /home/kaiuwe/kde/qt5/include/QtCore/qflags.h:121 #39 0x00007f6e605a1609 in Plasma::DataEnginePrivate::requestSource(QString const&, bool*) (newSource=0x7ffed342efaf, sourceName=..., this=0x55b7c8011bc0) at /home/kaiuwe/kde/src/plasma-framework/src/plasma/dataengine.cpp:579 #40 Plasma::DataEnginePrivate::requestSource(QString const&, bool*) (this=0x55b7c8011bc0, sourceName=..., newSource=0x7ffed342efaf) at /home/kaiuwe/kde/src/plasma-framework/src/plasma/dataengine.cpp:564 #41 0x00007f6e605a1e0c in Plasma::DataEngine::connectSource(QString const&, QObject*, unsigned int, Plasma::Types::IntervalAlignment) const (this=0x55b7c7ff99f0, source=..., visualization=visualization@entry=0x55b7c7f6f4b0, pollingInterval=pollingInterval@entry=0, intervalAlignment=intervalAlignment@entry=Plasma::Types::NoAlignment) at /home/kaiuwe/kde/src/plasma-framework/src/plasma/dataengine.cpp:112 #42 0x00007f6e606255d8 in ColorCorrect::Geolocator::Geolocator(QObject*) (this=0x55b7c7f6f4b0, parent=<optimized out>) at /home/kaiuwe/kde/qt5/include/QtCore/qstring.h:967 #43 0x00007f6e68005c85 in LocationUpdater::resetLocator() (this=0x55b7c7f551f0) at /home/kaiuwe/kde/src/plasma-workspace/libcolorcorrect/kded/locationupdater.cpp:32 #44 0x00007f6e74ff9b5e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffed342f170, r=0x55b7c7f551f0, this=0x55b7c7f68250) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #45 doActivate<false>(QObject*, int, void**) (sender=0x55b7c7f5f210, signal_index=5, argv=0x7ffed342f170) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #46 0x00007f6e74ff2f27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55b7c7f5f210, m=m@entry=0x7f6e6062cce0 <ColorCorrect::CompositorAdaptor::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x0) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946 #47 0x00007f6e6061aff7 in ColorCorrect::CompositorAdaptor::runningChanged() (this=this@entry=0x55b7c7f5f210) at /home/kaiuwe/kde/build/plasma-workspace/libcolorcorrect/colorcorrect_autogen/EWIEGA46WW/moc_compositorcoloradaptor.cpp:260 #48 0x00007f6e6061ea8b in ColorCorrect::CompositorAdaptor::updateProperties(QMap<QString, QVariant> const&) (this=this@entry=0x55b7c7f5f210, properties=...) at /home/kaiuwe/kde/src/plasma-workspace/libcolorcorrect/compositorcoloradaptor.cpp:93 #49 0x00007f6e6061f196 in ColorCorrect::CompositorAdaptor::<lambda(QDBusPendingCallWatcher*)>::operator() (__closure=<optimized out>, self=<optimized out>) at /home/kaiuwe/kde/qt5/include/QtCore/qvariant.h:877 --Type <RET> for more, q to quit, c to continue without paging-- #50 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QDBusPendingCallWatcher*>, void, ColorCorrect::CompositorAdaptor::CompositorAdaptor(QObject*)::<lambda(QDBusPendingCallWatcher*)> >::call (arg=<optimized out>, f=...) at /home/kaiuwe/kde/qt5/include/QtCore/qobjectdefs_impl.h:146 #51 QtPrivate::Functor<ColorCorrect::CompositorAdaptor::CompositorAdaptor(QObject*)::<lambda(QDBusPendingCallWatcher*)>, 1>::call<QtPrivate::List<QDBusPendingCallWatcher*>, void> (arg=<optimized out>, f=...) at /home/kaiuwe/kde/qt5/include/QtCore/qobjectdefs_impl.h:256 #52 QtPrivate::QFunctorSlotObject<ColorCorrect::CompositorAdaptor::CompositorAdaptor(QObject*)::<lambda(QDBusPendingCallWatcher*)>, 1, QtPrivate::List<QDBusPendingCallWatcher*>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /home/kaiuwe/kde/qt5/include/QtCore/qobjectdefs_impl.h:443 #53 0x00007f6e74ff9b5e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffed342f400, r=0x55b7c7f5f210, this=0x55b7c7f5e8a0) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #54 doActivate<false>(QObject*, int, void**) (sender=0x55b7c7f4d590, signal_index=3, argv=0x7ffed342f400) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #55 0x00007f6e74ff2f27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f6e754215c0 <QDBusPendingCallWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffed342f400) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946 #56 0x00007f6e754020e3 in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:158 #57 0x00007f6e754021e8 in QDBusPendingCallWatcherPrivate::_q_finished() (this=<optimized out>) at /home/kaiuwe/kde/src/Qt5/qtbase/src/dbus/qdbuspendingcall.cpp:494 #58 QDBusPendingCallWatcher::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:86 #59 0x00007f6e74ff06b9 in QObject::event(QEvent*) (this=0x55b7c7f4d590, e=0x55b7c7d857e0) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:1314 #60 0x00007f6e75de7dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry= 0x55b7c7c436a0, receiver=receiver@entry=0x55b7c7f4d590, e=e@entry=0x55b7c7d857e0) at /home/kaiuwe/kde/src/Qt5/qtbase/src/widgets/kernel/qapplication.cpp:3637 #61 0x00007f6e75df0bd8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffed342faa0, receiver=0x55b7c7f4d590, e=0x55b7c7d857e0) at /home/kaiuwe/kde/src/Qt5/qtbase/src/widgets/kernel/qapplication.cpp:3161 #62 0x00007f6e74fc2ada in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55b7c7f4d590, event=0x55b7c7d857e0) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../../../../src/Qt5/qtbase/src/corelib/thread/qthread_p.h:332 #63 0x00007f6e74fc53e1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55b7c7c43810) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1821 #64 0x00007f6e7501dd47 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55b7c7d89190) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277 #65 0x00007f6e73c3f17d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #66 0x00007f6e73c3f400 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 --Type <RET> for more, q to quit, c to continue without paging-- #67 0x00007f6e73c3f4a3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #68 0x00007f6e7501d3a2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55b7c7d8e570, flags=...) at /home/kaiuwe/kde/src/Qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423 #69 0x00007f6e74fc15db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffed342f9d0, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:141 #70 0x00007f6e74fc9784 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/global/qflags.h:121 #71 0x000055b7c739cb97 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/kaiuwe/kde/src/kded/src/kded.cpp:769 (In reply to Kai Uwe Broulik from comment #17) > On my system I also noticed apps getting stuck, I then found that kded5 was > in a deadlock. > > I had the geolocation observer try to update the location (for nightcolor), > which then did a TransferJob, which in turn used KIO, which would then do > the proxy stuff. It then called into ProxyScout, ending up in itself (since > kded called to kded), it then called KProtocolManager::proxyType(), which > deadlocked trying to acquire a mutex, see backtrace: > > Disabling either network proxy config or geolocatoin kded modules in > systemsettings removed the freeze but obviously that's not a fix. +1, exact same behavior on kio 5.96.0, plasma-workspace-5.25.4. *** Bug 419213 has been marked as a duplicate of this bug. *** A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2015 Git commit 98cadd48c21c89b81fdeb3499a557a6551a09d8a by Nicolas Fella. Committed on 11/09/2022 at 23:21. Pushed by nicolasfella into branch 'master'. [dataengines/geolocation] Port from KIO::http_post to QNetworkAccessManager Not only does this slightly simplify the code, it also avoids a deadlock in kded when automatic proxy detection is enabled Related: bug 457341 M +1 -1 dataengines/geolocation/CMakeLists.txt M +34 -50 dataengines/geolocation/location_ip.cpp https://invent.kde.org/plasma/plasma-workspace/commit/98cadd48c21c89b81fdeb3499a557a6551a09d8a *** Bug 460228 has been marked as a duplicate of this bug. *** Git commit d693026676cc6bf2b7c23e9ff4b620679cf15d10 by Nicolas Fella. Committed on 11/10/2022 at 15:46. Pushed by nicolasfella into branch 'Plasma/5.24'. [dataengines/geolocation] Port from KIO::http_post to QNetworkAccessManager Not only does this slightly simplify the code, it also avoids a deadlock in kded when automatic proxy detection is enabled Related: bug 457341 (cherry picked from commit 98cadd48c21c89b81fdeb3499a557a6551a09d8a) M +1 -1 dataengines/geolocation/CMakeLists.txt M +34 -50 dataengines/geolocation/location_ip.cpp https://invent.kde.org/plasma/plasma-workspace/commit/d693026676cc6bf2b7c23e9ff4b620679cf15d10 |