In den letzten Tagen beschäftigten mich gleich zwei Bugs mit Debian Sid auf dem Inspiron 4000. Ein Nachteil einer topaktuellen Rolling-Release-Distribution sind von Zeit zu Zeit auftretende Regressionen. Was vor ein paar Stunden noch wunderbar funktionierte, stellt einem nach einem Systemupgrade nur noch vor Rätsel.
Ich war nicht ganz überrascht und hatte auch bewusst Unstable auf dem Laptop gewählt um Fehler zu finden.
Was war passiert? Nun ich wollte wie immer meine E-Mails mit Claws-Mail abrufen. Das Programm startete und begann auch die Konten abzufragen, doch als die POP3-Accounts dran waren, beendete es sich einfach lautlos und ohne Kommentar.
In so einer Situation ist es oft am besten, die Anwendung aus einem Terminalfenster heraus noch einmal neu zu starten und dabei Statusmeldungen oder ungewöhnliche Fehlermeldungen zu beobachten. Möchte man sich diese später noch einmal anschauen, kann man die Nachrichten auch von STDOUT in eine Datei umleiten, z.B.
claws-mail --debug > fehlerbericht.txt
Nach dem Crash sah ich folgendes:
claws-mail: /build/buildd-cairo_1.10.2-6.1-i386-UoYIV1/cairo-1.10.2/src/cairo-surface.c:1287: cairo_surface_set_device_offset: Assertion `status == CAIRO_STATUS_SUCCESS' failed.
Aborted
Bei einer Suche in Debians Fehlerdatenbank fand ich dann einen anderen Fehlerbericht, der mein Problem zu beschreiben schien. Mir fiel nur auf, dass wir beide POP3 mit SSL benutzten, weshalb ich auf die Idee kam und die Konfigurationsdatei von Claws-Mail in ~/.claws-mail/accountrc editierte und SSL für alle meine POP3-Accounts deaktivierte.
Tatsächlich startete Claws daraufhin wieder fehlerfrei und E-Mails ließen sich erneut empfangen und versenden.
Den zweiten Bug fand ich in meinem Webkit Browser Midori. Als ich HTTPS-Webseiten aufrufen wollte, beendete sich die Anwendung ebenfalls ohne Vorwarnung von selbst. Zwei verschiedene Fehler, die beide etwas mit SSL zu tun haben sollten? Das schien mehr als Zufall zu sein.
Um herauszufinden welches Paket sich hier quer gestellt hat, hilft oft ein Blick auf die Paketabhängigkeiten der betroffenen Programme. Als ich mir die Liste angeschaut und mit den erneuerten Paketen abgeglichen hatte, kam nur eine Bibliothek in Frage, die sowohl von Claws als auch von Midori benutzt wird - libgcrypt11. Welche Pakete durch ein Upgrade ersetzt wurden lässt sich übrigens nachträglich auch noch einmal in /var/log/aptitude nachlesen.
Lange Rede kurzer Sinn, ich machte nach einem Hinweis des Paketverwalters von Midori einen Downgrade von libgcrypt11. Am einfachsten geht das, indem man sich das Paket entweder manuell von der Debian Webseite herunterlädt oder wenn man wie ich noch ein Debian Testing hat, womit ein
aptitude download libgcrypt11
genügt.
Im Anschluss kopierte ich das Paket einfach auf den Laptop und installierte es mit dpkg -i
. Tatsächlich lösten sich dadurch alle meine Probleme auf. Um nicht beim nächsten Upgrade erneut die neuere Version der Bibliothek herunterzuladen, kann man Debians Paketmanager dazu veranlassen, das Paket nicht mehr zu aktualisieren.
aptitude hold libgcrypt11
Im Moment scheinen meine Probleme damit gelöst zu sein. Die Frage bleibt aber, ob es tatsächlich nur an libgcrypt11 liegt. Die Eingangs erwähnte Fehlermeldung deutete z.B. auch auf libcairo2 hin.
Wie meldet man einen Bug bei Debian
Einen manuellen Fehlerbericht per E-Mail zu verschicken ist nur dann eine gute Idee, wenn man zu einem bestehenden Problem weitere Informationen liefern möchte. In allen anderen Fällen hat Debian schon ein Hilfsprogramm geschaffen, welches immer wiederkehrende Abläufe besser automatisiert.
Reportbug
Reportbug gibt es als Kommandozeilenprogramm und in einer GUI Version. Die Bedienung der Textversion ist simpel. Der Fehlerbericht muss aber in Englisch geschrieben werden, weswegen es auch keine deutsche Übersetzung dazu gibt.
Einen Fehler meldet man z.B. so:
reportbug midori
Danach wird die Fehlerdatenbank abgefragt und bestehende Fehlerberichte angezeigt. Befindet sich das Problem schon darunter, kann man durch Eingabe der entsprechenden Fehlernummer eine Ergänzung zu dem Bug schreiben. Ansonsten sind die Voreinstellungen sinnvoll. Man sollte lediglich dem Fehlerbericht einen aussagekräftigen Titel geben.
Wie man einen guten Fehlerbericht verfasst und viele weitere nützliche Informationen zum Thema Käfer finden, gibt es wie immer auf debian.org.