Open Source im professionellen Einsatz

© jerome berquez, Fotolia.com

Öffentlich dokumentierte Fehlerbehebung als Plus

Bug-Jäger

,

Bugs kommen in jeder Software vor. Entscheidend ist, wie ihre Entwickler mit gemeldeten Fehler umgehen und wie transparent sie dies handhaben. Eine Bestandsaufnahme für die Open-Source-Welt .

Wer findet die Bugs in freier Software? Jeder Benutzer. Die meisten Anbieter freier Software betreiben öffentliche Bugtracker. Dass die Anwender diese Angebote nutzen, zeigt die Zahl der Einträge bei großen Softwareprojekten: Auf dem Bugtracker [1] von KDE gingen binnen dreier Tage im Februar 276 Bugs ein. Auf dem Novell-Bugtracker [2] waren es für das Produkt Open Suse 368. Open Office erhielt im selben Zeitraum 342 Einsendungen [3].

Die verbreitetste Software für Bug-Reporting ist Bugzilla, dessen Bedienung sich nicht jedem sofort erschließt. Aktuelle Versionen bieten allerdings neben dem erweiterten Suchformular aus Abbildung 1 auch eine einfache Schlagwortsuche, die auch Anfänger nicht überfordert. Die Suche ist immer der richtige Einstiegspunkt beim Reporten. Sie zeigt, ob ein Fehler bereit gemeldet ist und offenbart darüber hinaus, wie weit der Fix bereits gediehen ist. Oft finden sich im Bugtracker auch Workarounds oder Hotfixes. Es ist hilfreich zu wissen, wenn ein Fehler auch anderen Leidensgenossen begegnet und nicht bloß einer exotischen Software-Konstellation auf dem eigenen Rechner zuzuschreiben ist.

Abbildung 1: Bugzilla ist der in der Open-Source-Welt verbreitetste Bugtracker. Das erweiterte Suchformular bietet alle erdenklichen Optionen, schreckt mit seiner überladenen Optik allerdings Einsteiger ab.

Abbildung 1: Bugzilla ist der in der Open-Source-Welt verbreitetste Bugtracker. Das erweiterte Suchformular bietet alle erdenklichen Optionen, schreckt mit seiner überladenen Optik allerdings Einsteiger ab.

Gesprächsplattform

Ein Bugtracker ist mehr als ein Verzeichnis gefundener Bugs. Er bildet eine Kommunikationsplattform, auf der Entwickler und Anwender Lösungsansätze diskutieren. Ein Beispiel aus dem Alltag: Auf dem Novell-Bugtracker meldet ein Anwender im November 2008, sein Mailreader Evolution sei instabil (Abbildung 2). Er hängt ein Backtrace des Absturzes an.

Abbildung 2: Plattform für die Zusammenarbeit von Anwendern und Entwicklern: Ein Anwender meldet einen Evolution-Crash. Entwickler bitten ihn, die Debug-Symbole zu installieren und Valgrind laufen zu lassen.

Abbildung 2: Plattform für die Zusammenarbeit von Anwendern und Entwicklern: Ein Anwender meldet einen Evolution-Crash. Entwickler bitten ihn, die Debug-Symbole zu installieren und Valgrind laufen zu lassen.

Das hilft den Entwicklern jedoch wenig, da der Anwender die Debug-Symbole für Evolution nicht auf dem System installiert hat. Noch am selben Tag bittet ihn ein Novell-Supporter, durch ein rotes »N« hinter dem Namen zu erkennen, diese zu installieren und neue Traces zu schicken. Er ersucht den Einsender außerdem, einen Valgrind-Befehl auszuführen. Einem anderen Anwender gelingt es einen Monat später, das gepatchte Paket zu installieren und sendet ein neues Backtrace. Am Mitte Dezember identifiziert der Novell-Entwickler schließlich zwei Fixes im Gnome-SVN-Repository, die von Valgrind zu Tage geförderten Speicherlöcher beheben. Vor Weihnachten steht schließlich ein als endgültig gedachter Patch bereit, den die Entwickler bis in den Februar hinein allerdings noch einige Male aktualisieren.

Jeden Tag ein Bug

Angesichts der großen Zahl von Einträgen in den Bugtrackern kann manchem Anwender schon Angst und Bange werden. Er sollte dabei allerdings bedenken, dass nicht jeder Eintrag einen Fehler kennzeichnet. Der Informatikprofessor Andrew S. Tanenbaum nennt Durchschnittswerte von bis zu zehn Bugs in 1000 Zeilen Code (KLOC). Nach einer Studie der Linux Foundation [4] wächst der Kernel mit einer Rate von etwa 2000 Zeilen Code pro Tag. Nach Untersuchungen im Rahmen des Scan-Projektes [5], das die Code-Qualität mittels statischer Softwareanalyse untersucht [6], enthält die Codebasis etwas weniger als zwei Fehler pro KLOC. Nach dieser Rechnung kommt täglich etwa ein Fehler in den Kernel - ein überschaubarer Wert.

Insofern stellt sich weniger die Frage, ob der freie oder der proprietäre Entwicklungsansatz weniger Fehler produziert, sondern vielmehr, wie schnell die Entwickler sie beheben. Ein weithin beachteter Fehler im Zufallszahlengenerator von Debian im Sommer 2008 illustriert diesen Umstand für das Linux-Lager [7]: Im April 2006 diskutierten mehrere Debian-Entwickler die Ausgabe von Valgrind, das anscheinend einen Bufferoverflow in der Libssl-Bibliothek entdeckt hatte. Sie benutzte einen Speicherbereich uninitialisiert. Nach einiger Diskussion kommentierte ein Debian-Maintainer dieses Codefragment im September 2006 aus.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 2 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook