“Look at it again!”

Do you want a stable and bug-free KDE Workspace? You certainly do. But before I talk about bugs, let me chat a bit about myself.

Being a math teacher is not easy; your students hate you for that fact alone. And I have a habit that makes them hate me even more: When there is something wrong with their math, I usually do not help immediately. Instead, I keep saying “look at it again!”, not even telling them where their mistake is. Only eventually they give up, and I need to guide them to the correct solution.

Okay, to tell the truth, they fully support my “bad habit”, because they learn a lot this way. A good mixture of reasoning, patience, and pedantism cannot be bad.

Now, why am I telling you all this?

Today, I closed three bug reports about crashes inside KDirWatch, all duplicates of the well known inotify crash bug that is happening since 4.0. The backtraces were, however, a bit different, and so I asked David Faure (our KIO maintainer) what could be the reason for this.

The whole inotify handling in kdelibs is really low level, nothing a casual C++ programmer wants to look at. I did, however, look at the code some months ago, when I had the (self-imposed) mission to resolve all kdelibs crashers (I miserably failed at that, though). There was nothing wrong with the code. I swear, nothing.

Said bug often happens with updates from package managers. I was thinking about some updated libraries having a different binary layout and with all the latest fuzz about inotify bugs in Linux kernel 2.6.31, which could cause folder views to not refresh on changes, I even feared some incompatibility.

So I “looked at it again”. And guess what? The reason for the crash was obvious, David immediately saw another related bug, and we were able to create a patch in just about two hours. After committing that, I looked at the patch, and found a bug that I introduced. Fixed that, committed that. Guess what? I “looked at it again”, and saw my (hopefully) last mistake.

There is one big difference between us KDE developers and my students. We cannot give up and hope someone guides us to our mistakes. We have to “look at it again” (and again).

PS: The fix is probably too late for the 4.4 beta1 release, but let’s hope the bug is gone for good with the beta2 release.

6 thoughts on ““Look at it again!””

  1. I saw crashes in KDirWatch::contains(), is that related or some other, multi-thread related, bug? Can’t find the bug with the bt unfortunately right now…

  2. @Carsten, there will be no other 4.3.x release.

    @Milian, 204670 ? I guess that this is unrelated, as it contains no inotify in the backtrace.

  3. I used to have a math teacher that did pretty much the same thing. I learned not only how to do the problems but also alternate ways to do them, when I worked with someone else. Once I found a new formula that seemed to work all the time, he made me derive the formula, and helped me understand the proof (which I doubt I could have understood by myself at that grade.)

    Keep up the great work!

  4. Well, still people are using the branch and distros are updating their packages. So I think a backport (if the patch is well understood and works) should be done (if you find the time).

    Thanks for your work anyway.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s