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

Sebastian Trüg trueg at kde.org
Fri May 28 13:14:21 BST 2010


On 05/28/2010 02:04 PM, Lubos Lunak wrote:
> 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.

It is not just KRunner. Dolphin crashes a lot due to that bug (less to
not at all with my workaround though), the activity manager crashes, the
nepomuk filewactch service crashes. And those are only the ones I looked
into. I think the problem is that before this no app really used DBus in
a multithreaded situation.

Cheers,
Sebastian




More information about the kde-core-devel mailing list