Deadlock in kded whith Qt 5.6

David Faure faure at kde.org
Wed Jan 20 07:55:17 UTC 2016


On Tuesday 19 January 2016 22:54:35 Thiago Macieira wrote:
> On Monday 18 January 2016 09:23:51 David Faure wrote:
> > Thiago: indeed the BlockingQueuedConnection call from messageFilter to the
> > main thread occasionnally leads to deadlocks, we need your
> > "postpone incoming messages" idea.
> 
> Please try the attached patch, also found at
> 	https://codereview.qt-project.org/146639

Doesn't seem to support service autostart + module autoload together.

If kded5 isn't running, then
$ qdbus org.kde.kcookiejar5  
works (autostart OK)
and then
$ qdbus org.kde.kcookiejar5  /modules/kcookiejar
works (module autoload OK)

but if I kill kded5 again and do this right away:
$ qdbus org.kde.kcookiejar5  /modules/kcookiejar
then it doesn't work: kded5 gets started, but the call gets this reply
Error: org.freedesktop.DBus.Error.UnknownObject
No such object path '/modules/kcookiejar'

This is obviously after reverting my BlockingQueuedConnection hacks in kded and kiod.


Same issue with kiod (who has the same logic, but starts much faster).
$ qdbus org.kde.kpasswdserver /modules/kpasswdserver
Error: org.freedesktop.DBus.Error.UnknownObject
No such object path '/modules/kpasswdserver'
$ qdbus org.kde.kpasswdserver /modules/kpasswdserver
works the second time.

The messageFilter doesn't run at all, when doing autostart+autoload together.

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5



More information about the Kde-frameworks-devel mailing list