Meine Debian-Aktivitäten im Juni 2012

Ein wenig inspiriert von Raphaël Hertzogs regelmäßigen Posts, was er in den Vergangenheit für Debian unternommen oder entwickelt hat, sind hier meine, zugegeben etwas kleineren, Unternehmungen, ein paar Bugs auszumerzen.

Im letzten Jahr beschäftigten mich noch unter anderem Probleme mit PolicyKit und einem scheinbar raren Problem mit libgcrypt11. Letzteres ist weiterhin nicht gelöst, scheint aber bei anderen Benutzern auch nur selten aufzutreten.

Am spannendsten war dieses Jahr bisher eine Schwäche im OpenArena-Server, die es Angreifern erlaubt hat mittels Spoofing gefälschte UDP-Anfragen an den Server zu schicken, der die Ausgabe, Statusvariablen des Servers, dann an Web- oder Mailserver adressierte, um sie durch eine kombinierte DRDoS-Attacke lahm zu legen. Einen Patch gab es zum Glück schon, nur noch der Paketverwalter musste benachrichtigt werden, der das Problem innerhalb weniger Stunden lösen konnte.

In der selben OpenArena-Version 0.8.5 gibt es noch einen weiteren Bug, der zum Crash des Servers führen kann, wenn Bots und menschliche Spieler auf bestimmten Maps spielen und durch eine scheinbar fehlerhafte Wegepunkt-Logik die Bots den Server zum Absturz bringen. (#664637)
Ich denke in der neuesten Version 0.8.8 taucht er so nicht mehr auf, dafür stürzt der Server nun scheinbar zufällig ab, wenn ausschließlich menschliche Spieler spielen. Das passiert zum Glück recht selten, leider aber immer dann wenn sieben oder sogar 15 Leute gleichzeitig spielen, was natürlich mehr als ein Showstopper ist.

Ich versuche im Moment den Server zu debuggen, wobei mir Simon McVittie die richtige Vorgehensweise gezeigt hat. Man erstellt sich z.B. ein Wrapper-Skript in /usr/local/bin/openarena-server-wrapper mit folgendem Inhalt.

#!/bin/sh
OPENARENA_BACKTRACE=1
export OPENARENA_BACKTRACE
exec > /var/games/openarena-server/.openarena/baseoa/openarena-server.log 2>&1
exec /usr/games/openarena-server "$@"

In /etc/init.d/openarena-server ersetzt man dann den Wert der DAEMON-Variable durch den Pfad zu diesem Wrapper-Skript. Zuvor muss man noch den GNU Debugger (gdb) und die Debug-Symbole für Ioquake3 und für den OpenArena-Server installieren, damit die Ausgabe des Debuggers nützlich und nachvollziehbar ist.

Es scheint so, als ob das Problem nicht debianspezifisch sei und irgendein Fehler in der Spiellogik vorliegt. Wenn etwas Brauchbares dabei herauskommt, frage ich bei Gelegenheit direkt mal im offiziellen OpenArena-Forum um Hilfe nach und komme auf den Fehler zurück.

Durch den Absturz des Servers ist mir dann aufgefallen, dass die PID-Datei des Servers nicht ordnungsgemäß entfernt wird und der Server durch Monit auf Grund einer if-Bedingung im Init-Skript daraufhin den Start verweigert. (#678543) Das Problem hat der Paketverwalter ebenfalls in wenigen Stunden gelöst und schon eine neue Version nach Unstable hochgeladen.

Ansonsten habe ich wie angekündigt einen Wishlist-Bug gegen Qstat (#675838) eingereicht mit der Bitte um ein Paket-Update. Bisher gab es aber noch keine Rückmeldung des Betreuers, weswegen es ein neues Paket nicht mehr nach Wheezy schaffen wird.

Ebenfalls auf der Wunschliste stand die Bitte eine Beispielkonfiguration für das Cube2:Sauerbraten-Paket bereitzustellen (#673808). Ich denke mein Patch fand Anklang, auch wenn sich der Verwalter eine generischere Konfiguration gewünscht hätte. Nachdem ich die nachgeliefert hatte, scheint es aber so, dass er die nächste offizielle Veröffentlichung von Sauerbraten abwarten möchte, weswegen die Lösung dieses Bugs für die Version in Wheezy noch warten muss.

Ansonsten fiel mir noch ein „Serious-Fehler“ (#647613) für Boswars, ein Strategiespiel, auf, der mittlerweile aber nur noch „Important“ ist. Ich konnte den Fehler bestätigen. Das Problem ist bei Upstream bekannt.

Dass es sich hier um Debianspiele handelte, ist natürlich kein Zufall. Durch das vServer-Projekt bin ich automatisch auf Fehler gestoßen und irgendwo gibt es sie eben immer. Wie die Sache mit der DRDoS-Attacke zeigt, sollte man nicht zögern, das sofort zu melden. Das gleiche Problem gab es nämlich auch im Tremulous-Paket, wodurch nicht nur Debian, sondern auch Fedora betroffen war.

Alles in allem kann die Fehlersuche sogar richtig Spaß machen. Nun bin ich gespannt, was das Debuggen des OpenArena-Servers bringt. 🙂

One Reply to “Meine Debian-Aktivitäten im Juni 2012”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.