Bug 350890

Summary: Freezes when using a http proxy (squid)
Product: [Unmaintained] muon Reporter: Geoffrey Clements <geoff>
Component: miscAssignee: David Faure <faure>
Status: RESOLVED FIXED    
Severity: normal CC: aleixpol, criguada, faure, hello, rauchweihe, sitter
Priority: NOR    
Version: 5.2.2   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.15
Sentry Crash Report:

Description Geoffrey Clements 2015-08-02 20:24:25 UTC
The muon updater freezes when KDE is configured to use a http proxy to connect to the internet. In my case I use squid. By freeze I mean that the window becomes unusable and the only way (that I've found) to close it is to kill the process. I don't think this bug is in muon per se because get new wallpapers and get new widgets are affected in just the same way so I guess it's a another component of KDE that has the problem.

Reproducible: Always

Steps to Reproduce:
1. Set up your network to use Web Proxy Auto-discovery Protocol.
2. In System Settings -> Network Settings -> Proxy select "Detect proxy configuration automatically"
3. Start muon updater

Actual Results:  
Muon updater starts but the window is unresponsive.


Muon updater, get new wallpapers and get new widgets all work fine when KDE is set to use no proxy.
Comment 1 themroc 2015-08-25 19:33:37 UTC
Same here in Kubuntu 15.04 with KDE 5.2.2 or Kubuntu 15.04 with kde Plasma 5.3 via backports!

But the Problem is much bigger:

Every ported  kf5 or plasma 5 application is affected.
And every proxy type is affected.

E.g.: 
- plasmashell freeze, if you try to use a plasmoid, which try to connect via http or https. 
- plasmashell freeze, if you try update via system-tray update info icon.
- krunner freeze if you try to open a webpage or an online image.

So, the conclusion is:
All KDE Frameworks 5 applications are not usable behind a proxy server at the moment!

See also here:
https://bugs.launchpad.net/ubuntu/+source/plasma-workspace/+bug/1450114
Comment 2 Harald Sitter 2015-09-07 19:56:42 UTC
Setting any old proxy reproducible breaks discover, updater and possibly more KIO applications.
Comment 3 Harald Sitter 2015-09-07 20:00:24 UTC
(gdb) bt
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff5555940 in _q_futex (op=<optimized out>, val=<optimized out>, timeout=<optimized out>, addr=<optimized out>) at thread/qmutex_linux.cpp:146
#2  lockInternal_helper<false> (timeout=<optimized out>, elapsedTimer=<optimized out>, d_ptr=...) at thread/qmutex_linux.cpp:187
#3  QBasicMutex::lockInternal (this=this@entry=0x7fffeffb6e80 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>) at thread/qmutex_linux.cpp:203
#4  0x00007ffff55559e9 in QMutex::lock (this=this@entry=0x7fffeffb6e80 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>) at thread/qmutex.cpp:217
#5  0x00007fffefd302cf in QMutexLocker (m=0x7fffeffb6e80 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>, this=<synthetic pointer>)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:128
#6  KProtocolManager::proxyFor (protocol=...) at ../../../src/core/kprotocolmanager.cpp:466
#7  0x00007fffefd303fb in KProtocolManagerPrivate::getSystemProxyFor (this=this@entry=0x7fffeffb6e80 <(anonymous namespace)::Q_QGS_kProtocolManagerPrivate::innerFunction()::holder>, url=...)
    at ../../../src/core/kprotocolmanager.cpp:540
#8  0x00007fffefd3162f in KProtocolManager::proxiesForUrl (url=...) at ../../../src/core/kprotocolmanager.cpp:578
#9  0x00007fffefd32608 in KProtocolManager::slaveProtocol (url=..., proxyList=...) at ../../../src/core/kprotocolmanager.cpp:679
#10 0x00007fffefd23030 in KIO::SchedulerPrivate::doJob (this=0x6a7720, job=job@entry=0x2ba08b0) at ../../../src/core/scheduler.cpp:954
#11 0x00007fffefd23415 in KIO::Scheduler::doJob (job=job@entry=0x2ba08b0) at ../../../src/core/scheduler.cpp:792
#12 0x00007fffefd0f561 in KIO::SimpleJobPrivate::simpleJobInit (this=<optimized out>) at ../../../src/core/simplejob.cpp:48
#13 0x00007fffefd197f9 in KIO::TransferJob::TransferJob (this=0x2ba08b0, dd=...) at ../../../src/core/transferjob.cpp:32
#14 0x00007fffefd1a2bc in newJob (flags=..., _staticData=..., packedArgs=..., command=67, url=...) at ../../../src/core/job_p.h:294
#15 KIO::get (url=..., reload=KIO::Reload, flags=...) at ../../../src/core/transferjob.cpp:477
#16 0x00007fffccd76890 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#17 0x00007fffccd5dd85 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#18 0x00007fffccd6400c in ?? () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#19 0x00007fffccd5799a in ?? () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#20 0x00007fffccfe762a in KNSBackend::setMetaData(QString const&) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/muon/muon-knsbackend.so
#21 0x00007ffff70168e1 in MuonBackendsFactory::backendForFile(QString const&, QString const&) const () from /usr/lib/x86_64-linux-gnu/libMuonCommon.so
#22 0x00007ffff70171ed in MuonBackendsFactory::backend(QString const&) const () from /usr/lib/x86_64-linux-gnu/libMuonCommon.so
#23 0x00007ffff70174b2 in MuonBackendsFactory::allBackends() const () from /usr/lib/x86_64-linux-gnu/libMuonCommon.so
#24 0x00007ffff700b2ea in ResourcesModel::registerAllBackends() () from /usr/lib/x86_64-linux-gnu/libMuonCommon.so
#25 0x00007ffff701c415 in ?? () from /usr/lib/x86_64-linux-gnu/libMuonCommon.so
#26 0x00007ffff57cd73a in QObject::event (this=0x714e60, e=<optimized out>) at kernel/qobject.cpp:1245
#27 0x00007ffff632db2c in QApplicationPrivate::notify_helper (this=0x63fb20, receiver=0x714e60, e=0x71e870) at kernel/qapplication.cpp:3720
#28 0x00007ffff6333000 in QApplication::notify (this=0x7fffffffd630, receiver=0x714e60, e=0x71e870) at kernel/qapplication.cpp:3503
#29 0x00007ffff579bc2b in QCoreApplication::notifyInternal (this=0x7fffffffd630, receiver=0x714e60, event=event@entry=0x71e870) at kernel/qcoreapplication.cpp:935
#30 0x00007ffff579dc9b in sendEvent (event=0x71e870, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#31 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x63ede0) at kernel/qcoreapplication.cpp:1552
#32 0x00007ffff579e298 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1410
#33 0x00007ffff57f4843 in postEventSourceDispatch (s=0x6832c0) at kernel/qeventdispatcher_glib.cpp:271
#34 0x00007ffff1e5cc3d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff1e5cf20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff1e5cfcc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff57f4c57 in QEventDispatcherGlib::processEvents (this=0x67e9b0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
Comment 4 Aleix Pol 2015-09-18 16:38:51 UTC
See fix proposal: https://git.reviewboard.kde.org/r/125300/
Comment 5 David Faure 2015-09-19 20:49:07 UTC
And here's my fix proposal ;) https://git.reviewboard.kde.org/r/125316/
Comment 6 David Faure 2015-09-21 16:51:37 UTC
Git commit 2879a29090863621dec1348a1297e38c8e78e2a4 by David Faure.
Committed on 21/09/2015 at 16:51.
Pushed by dfaure into branch 'master'.

KProtocolManager: fix deadlock when using EnvVarProxy.
Change-Id: I8471c01d68054c7dccb9109524f0433465219aff
FIXED-IN: 5.15

M  +14   -2    autotests/kprotocolinfotest.cpp
M  +1    -1    src/core/kprotocolmanager.cpp

http://commits.kde.org/kio/2879a29090863621dec1348a1297e38c8e78e2a4
Comment 7 themroc 2015-10-12 18:49:31 UTC
I can confirm, that the bug is fixed in Kubuntu 15.10.
Kubuntu 15.10 comes with KDE Frameworks 5.15.0 and in KDE Frameworks 5.15.0 is the bug fixed.

I have test it today on a test system in a corporate environment behind a restrictiv proxy server: 
It works again in the actual beta of Kubuntu 15.10.
It works, if proxy is set via system settings.
It works, if proxy is set via config file.

Thanks to everyone who helped to fix this bug!
Comment 8 Wolfgang Bauer 2015-11-12 11:56:21 UTC
*** Bug 349522 has been marked as a duplicate of this bug. ***