https://bugs.kde.org/show_bug.cgi?id=449984
Kai Uwe Broulik <k...@privat.broulik.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |k...@privat.broulik.de --- Comment #17 from Kai Uwe Broulik <k...@privat.broulik.de> --- 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 -- You are receiving this mail because: You are watching all bug changes.