• IT-Karriere:
  • Services:

Linux-Kernel: Machine-Learning allein findet keine Bugs

Mittels KI sucht der Linux-Kernel-Entwickler Sasha Levin nach Patches für die stabilen Zweige, die Code verbessern. Aber kann er mit dem System auch Patches finden, die Bugs enthalten? Für Levin ist das eine schwer lösbare Aufgabe, aber er hat ein paar Anhaltspunkte dafür, wie das gehen könnte.

Artikel veröffentlicht am ,
Fehler im Linux-Kernel zu finden, bevor der Code eingepflegt wird, geht wohl nicht.nur mit Machine Learning.
Fehler im Linux-Kernel zu finden, bevor der Code eingepflegt wird, geht wohl nicht.nur mit Machine Learning. (Bild: Liam Quinn,flickr.com/CC-BY-SA 2.0)

Der bei Microsoft angestellte Entwickler Sasha Levin pflegt gemeinsam mit Greg Kroah-Hartman die sogenannten Stable-Zweige des Linux-Kernels. Um die dafür notwendigen Patches für Verbesserungen zu finden, setzt Levin unter anderem auf einen Machine-Learning-Ansatz. Wie der Entwickler in seinem Vortrag auf dem diesjährigen Open Source Summit Europe in Lyon berichtet, sei er wegen seiner Arbeiten mehrfach gefragt worden, ob damit nicht auch Bugs gefunden werden könnten, bevor diese überhaupt in den Kernel eingepflegt werden. Die Antwort darauf ist laut Levin aber alles andere als einfach, wie er in einer ausführlichen Analyse vorstellt.

Stellenmarkt
  1. Schaeffler Paravan Technologie GmbH & Co. KG, Schorndorf, Schorndorf
  2. DB Netz AG, Frankfurt (Main)

Denn wie viele Entwickler wissen, ist das Erkennen von fehlerhaftem Code keine überschaubare Aufgabe. Zwar gebe es bereits eine Vielzahl von Werkzeugen zum Auffinden von Fehlern, etwa per statischer Code-Analyse. Doch aus Sicht von Levin ist die größte Fehlerquelle in der Entwicklung des Linux-Kernels dessen Entwicklungsprozess selbst. Das versucht der Entwickler durch eigene Analysen zu untermauern.

Objektive Analyse schwer umsetzbar

Aus seiner persönlichen Erfahrung als Maintainer weiß Levin, dass vor allem Reviews, also das Überprüfen des Codes durch Dritte, sowie das Testen von Code das Einführen von Bugs vermeiden helfen. Dabei spiele es durchaus eine Rolle, wer das Review durchführt, wie viel Zeit dies in Anspruch nimmt oder auch wie ausführlich die mögliche Kritik dazu ausformuliert wird.

Zwar sei es schwierig, diese und weitere Dinge tatsächlich zu quantifizieren. Das gelte vor allem auch für die Frage, was im Sinne der ursprünglichen Fragestellung und Untersuchung überhaupt als Bug gewertet werden sollte. Dennoch habe Levin versucht, einige dieser Überlegungen an Hand einer vorausgewählten Menge von Code-Beiträgen zum Kernel in ein Machine-Learning-Modell zu überführen.

Das Modell hat dabei natürlich zwangsläufig Schwächen und kann auch nicht direkt dafür benutzt werden, um tatsächlich fehlerhaften Code zu finden, bevor dieser in den Hauptzweig des Kernels eingepflegt wird. Für Levin bietet die so durchgeführte Untersuchung dennoch einige sehr wichtige Anhaltspunkte.

Schnelle Patches kurz vor der Deadline haben mehr Bugs

Die wohl wichtigste Erkenntnis hierbei ist laut Levin, dass die Wahrscheinlichkeit Fehler in Beiträgen einzuführen, dreimal höher ist als normal, wenn der Code erst spät in RC-Kernel eingepflegt wird. Das erscheint zunächst kontraintuitiv, da nach einer zweiwöchigen Phase zum Einreichen neuer Funktionen für die kommende Linux-Version (Merge-Window) eine meist achtwöchige Testphase mit Bug-Fixes und den Release-Candidates (RC) folgt, bevor eine neue Linux-Version erscheint.

Laut Levin bestätigt dieses Ergebnis aber seine Vermutungen in Bezug auf die Reviews. So durchlaufen neue Funktionen und größere Änderungen oft eine lange Review-Phase und die Patches dazu werden meist ausgiebig diskutiert. In der späten RC-Phase der Kernel-Entwicklung ist der Prozess zum Einpflegen jedoch sehr viel schneller und oft finde gar kein Review statt.

Levin habe für diese Entwicklungsphase eine Menge Patches gefunden, deren Code an einzigem Tag geschrieben, eingereicht und eingepflegt worden ist. Bei einer derart schnellen Entwicklung steigt natürlich das Fehlerpotenzial.

Ob und was aus dieser Erkenntnis aber langfristig für den Entwicklungsprozess des Linux-Kernels folgt, ist für Levin nicht wirklich klar. Er habe zwar einige Ideen, diese ließen sich wohl aber nur schwer umsetzen. Dazu gehöre etwa eine echte Freeze-Phase in der Entwicklung, um die Neuerungen ausgiebig zu testen. Möglicherweise verschiebt das das Einpflegen kurzfristig erstellter Patches aber auch nur weiter nach hinten.

Ebenso könnte sich Levin eine Art standardisiertes Vorgehen zur Akzeptanz von Patches in den Hauptzweig vorstellen. Als Voraussetzung für eine Aufnahme könnte hierbei eine Mindestanzahl an Tagen sein, die die Patches in dem Linux-Next-Zweig vor Aufnahme in den Hauptzweig vorhanden sein müssen. Ebenso könnten ausführliche Reviews oder Tests erzwungen werden oder auch sogenannte Sign-off-Tags. Letztere würden in diesem Fall in etwa "abgesegnet von" bedeuten.

All diese Vorgaben würden laut Levin bei einem nicht vernachlässigbaren Anteil an Entwicklern und Maintainern wohl auf Widerstand stoßen und sind damit nicht umsetzbar.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. 23,99€
  2. 21,99€
  3. 59,99€ (PC), 64,97€ (PS4), 69,99€ (Xbox One)
  4. (-63%) 14,99€

Eheran 30. Okt 2019

In der Statistik eben genau nicht. Da bleiben die Standardabweichungen der Wert gleich...

schnedan 30. Okt 2019

KI ist ein Brute-Force Tool, das man nimmt um schnell eine 80% Lösung zu haben, das man...


Folgen Sie uns
       


Disney Plus - Test

Der Streamingdienst Disney Plus wurde am 24. März 2020 endlich auch in Deutschland gestartet. Golem.de hat die Benutzeroberfläche einem Test unterzogen und auch einen Blick auf das Film- und Serienangebot des Netflix-Mitbewerbers geworfen.

Disney Plus - Test Video aufrufen
Coronavirus: Spiele statt Schule
Coronavirus
Spiele statt Schule

Wer wegen des Coronavirus mit Kindern zu Hause ist, braucht einen spannenden Zeitvertreib. Unser Autor - selbst Vater - findet: Computerspiele können ein sinnvolles Angebot sein. Vorausgesetzt, man wählt die richtigen.
Von Rainer Sigl

  1. China Bei Huawei füllen sich die Büros nach Corona wieder
  2. Schulunterrricht Datenschützer hält Skype-Nutzung für bedenklich
  3. Coronakrise Netzbetreiber dürfen Dienste und Zugänge drosseln

Autorennen: Rennsportler fahren im Homeoffice
Autorennen
Rennsportler fahren im Homeoffice

Formel 1? Gestrichen. DTM? Gestrichen. Formel E? Gestrichen. Jetzt treten die Rennprofis gegen die besten Onlinefahrer der Welt an.
Von Frank Wunderlich-Pfeiffer

  1. E-Sport Die Formel 1 geht online weiter
  2. Lvl Von der Donnerkuppel bis zum perfekten Burger
  3. E-Sport Gran-Turismo-Champion gewinnt auch echte Rennserie

Arduino: Diese Visitenkarte ist ein Super-Mario-Spielender-Würfel
Arduino
Diese Visitenkarte ist ein Super-Mario-Spielender-Würfel

Eine Visitenkarte aus Papier ist langweilig! Der Elektroniker Patrick Schlegel hat eine Platine als Karte - mit kreativen Funktionen.
Von Moritz Tremmel

  1. Thinktiny Mini-Spielekonsole sieht aus wie winziges Thinkpad

    •  /