Review Request: Workaround for non-thread-safety of QDBusConnection

Lubos Lunak l.lunak at suse.cz
Fri May 28 13:04:15 BST 2010


On Friday 28 of May 2010, Thiago Macieira wrote:
> Em Sexta-feira 28. Maio 2010, às 01.17.47, Lubos Lunak escreveu:
> >  For example, openSUSE 11.3 is now entering RC phase and that means that
> > only  fixes can enter it, not features or newer non-patchlevel releases.
> > Since the fix is in 1.4.0 and openSUSE is at 1.2.8 IIRC, 1.4.0 cannot
> > enter openSUSE 11.3, neither now nor later. Now I know what the fix is
> > and I need to know what the actual problems are to evaluate and possibly
> > justify a request for exception to the rules. With the information given
> > so far the fix appears to be rather risky and not even remotely worth a
> > problem that has existed for quite a while and is "theoretical".
>
> It's not theoretical. It's quite easy to run into that issue: if the mutex
> is unlocked for a callback, the other thread will not be able to send the
> message. It will fail.

 You don't understand - for me as a packager, this all is completely 
uninteresting so far. Thread safety problem with D-Bus? If a mutex is 
unlocked, other thread will not be able to send a message? And the fix is a 
new minor release? I don't need five seconds to shrug this off.

 Let me try to explain this way: Suppose I'd give you a 1000-line patch for Qt 
that'd rewrite a part of QClipboard internals because the Xlib locking there 
was wrong and said you should include it in Qt4.6.3 . That's like what you've 
done. You are missing the equivalent of "without the fix Qt applications may 
randomly crash as a result of copy&pasting in any app".

> I've seen krunner crashing because of this. That happens because the D-Bus
> calls are sent by several threads in response to the same event: the user
> typing.

 KRunner auto-restarts and apparently the crash isn't that common. Not even 
close to justifying doing anything special about it.

> Anyway, QtDBus is resistant to the change and wouldn't have problems with
> the patch. The problem are other bindings and low-level apps.

-- 
 Lubos Lunak
 openSUSE Boosters team, KDE developer
 l.lunak at suse.cz , l.lunak at kde.org




More information about the kde-core-devel mailing list