Today I woke up and read the news that the Ubuntu hardy C library (libc6) had been broken. The bug is so bad that the system no longer boots. Tempers are running high. What to do?

There is a discussion thread on the ubuntu-devel mailing list, where someone flames the person who did the broken upload, and someone else flames the first flamer, and then other people flame the second flamer. It's a regular flamefest. It's not the most constructive reaction from any of the involved people (which is why I'm not linking to it).

This is not Ubuntu specific in any way. Any system that is being developed is going to have bugs of various sorts, some really bad like this. When that happens, people are going to be annoyed.

I'd like to offer the following as lessons to be learned from these kinds of episodes:

  • Developers must have the freedom to make mistakes without retaliation. Flaming counts as retaliation. Fear makes people less productive.

  • People who suffer from the bug need to vent. Preferably they will do this in private rather than in public, and without aiming it at specific people, but the need is real, and suppressing it won't improve things. Back in the old days, alt.flame worked pretty well for Usenet, perhaps that's a model that could still apply.

  • Many problems can be found via automatic testing. Perhaps testing all uploads with, say, piuparts, before they are installed into the package archive could catch some future problems. (Disclaimer: piuparts can't currently test libc or other essential packages.)

  • Even with rigorous testing, there will be catastrophic bugs. Linux could benefit from a way to recover from them that is easier than fiddling with installation media and tweaking stuff manually. There's various approaches that could apply, perhaps we should pick one and push it. "We" being not just Ubuntu, but also Debian and other distributions.

Edit: Old discussion page.