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.

Reply via email to