Der Fehler, der zu weltweiten Ausfällen des Browsers Firefox führte, ist jetzt durch Mozilla behoben worden. Der Auslöser kommt bei Software-Projekten häufig vor.

Die Groß- und Kleinschreibung hat zugeschlagen

Mozilla hat den Fehler in seiner HTTP/3-Umsetzung jetzt aufgespürt, der für den weltweiten Ausfall des Firefox-Browsers gesorgt hatte. Recht  schnell nach dem Ausfall ist bekannt geworden, dass eine Änderung bei einem von Mozilla genutzten Cloud-Dienst den Fehler ausgelöst hat. Aus dem dazugehörigen Bug-Report geht hervor, dass der offenbar das Header-Feld Content-Length: geändert hat, und der Firefox das Feld daraufhin falsch geparst hat.

Im Bug-Report dazu ist zu lesen, das der Firefox-Code beim Parsen der HTTP-Header auf eine Funktion stoße, die das Feld Content-Length:  nur verarbeitet, wenn es in Großbuchstaben geschrieben sei.

Im konkreten Fall war es aber klein geschrieben, so dass aus dem Header nicht die Länge berechnet werden konnte. Und genau das zwang den Firefox- Code dann in die Endlosschleife.

Die nötigen Patches zur Fehlerbehebung sind dementsprechend simpel nachvollziehbar: Nach dem Patchen wird die Groß- und Kleinschreibung des Headers in Zukunft nicht mehr betrachtet. Außerdem hat das Team den Fehler mit der Endlosschleife behoben, so dass auch der künftig nicht mehr auftreten sollte. Trotz des Parsing-Fehlers wäre der Browser damit zumindest noch nutzbar gewesen.

Das alte Problem ist bisher nie aufgefallen

Dass die Groß- und Kleinschreibung (Case-Sensitivity) überhaupt einen Fehler erzeugen kann, liegt dabei wohl an dem unterschiedlichen Umgang verschiedener Programmiersprachen und Technologien damit. Denn der ist eben nicht einheitlich und führt dadurch seit Jahren immer wieder zu Fehlern.

Im konkreten Fall des Firefox-Browsers sind die HTTP-Header laut Standard aber explizit als case-insensitive definiert, also sollte die Groß- beziehungsweise Kleinschreibung bei ihrer Verarbeitung eigentlich keine Rolle spielen. Das wurde aber wohl bei der Umsetzung für HTTP/3 im Firefox nicht beachtet,was bisher nur offenbar nie aufgefallen war.