Es war ein langer Leidensweg. Bei jedem Absturz, jedes Mal den vmcore Dump zu extrahieren und auf der B.A.T.M.A.N. Mailingliste zu dokumentieren. Der Fehler kommt in unregelmäßigen Abständen, je nach Nutzerverhalten, und nimmt direkt den gesamten Server mit ins Nirvana. Bei mehreren Gateways ist es nur eine Frage der Zeit, bis das nächste Gateway das Gleiche erlebt. Ich kann doch nicht so einfach kommunizieren „Leute, tut mal bitte nicht das, was ihr tut, das mag der Server nicht“, denn entweder wird der Fehler gar nicht aufgedeckt oder irgend ein Depp macht genau das und ich kann mich dann gar nicht schlafen legen. Als ich getwittert habe, dass ich vorsichtshalber das Gateway deaktiviere, hatten wir 6 Tage Ruhe. Dann erwies sich auch 3.17.4 als instabil.
Der Patch von Martin Hundebøll wurde auf dem bestehenden, mit dem Kernel gelieferten bat-Kernelmodul angewendet und brachte am Wochenende statt Ergebnissen nur Frust und Verzweiflung. Als Sven Eckelmann ein ähnliches Problem bearbeitete, schlug Martin vor Svens Patch zusammen mit seinen Debugging-und-den-Kernel-von-Panik-abhaltenden-Routinen auf das bat-Modul im git anzuwenden. Wir bekamen Zahlen, die die Länge der fragmentierten Pakete beschrieben. Die Maschine konnte aber nicht vor einem Absturz bewahrt werden, da danach im Kernel immer etwas schief lief.
Das Problem konnte aber nun endlich isoliert und beschrieben werden. An der Lösung wird noch gearbeitet und gearbeitet.
Dieser Bug wäre nicht aufgetreten, wenn die Anbindung an das FFRL-BB mit einer zum fastd-Tunnel identischen MTU von 1426 statt 1400 verwirklicht worden wäre. Somit hat es auch ein Gutes, dass der Bug entdeckt wurde. Wäre es nicht bei uns aufgetreten, wäre es woanders passiert. Ruben von FF NRW berichtet von hyperstabilem bat15, jedoch werden die Knoten dort anders angebunden.
Neben Frust, Verzweiflung und der für dieses Problem „gestohlenen“ Zeit auf der einen Seite habe ich andererseits als n00b, der kein C spricht, gelernt, wie man Fehler systematisch sucht, einen Kernel debuggt, Tunnel bohrt und Hilfe bei Entwicklern bekommt.