Saturday, May 29, 2010

Complex systems are complex

Under such a obvious title i want to state how much things mostly work by luck in modern software systems, let's pick bug 232918: Translations do not work on KDE 4.5 snapshots.

I was never able to reproduce this error until Johannes Obermayr let my play with his machine today. Why? Because my kdebase installation was old, but i really never bothered updating kdebase to try to reproduce this problem since kdebase has nothing to do with translations, right? Right, it doesn't.

So what was happening? Well, a not obvious use case of KComponentData in KStyle together with the new feature that integrates Qt and the KDE Development platform more closely was triggering a bug in KComponentData, and the thing is that the bug had been there since r718911 (that is almost 3 years ago), but it wasn't until a while ago that it was triggered by the combination of that KStyle and Qt/KDE plugin.

So yes, writing software is complex, and what causes something to break (the Qt/KDE Plugin) is not always the one to blame (in this case KComponentData)

BTW for those curious, the bug fix together with the explanation of what it is a bug can be found at http://websvn.kde.org/trunk/KDE/kdelibs/kdecore/kernel/kcomponentdata_p.h?r1=1112279&r2=1132109

Also while on it, I found a bug in an openSuse patch where they where adding three default catalogs but adding 4 to numberOfSysCatalogs variable, cheers to tittiatcoke for quickly fixing it.

No comments: