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. Fachinformatiker (m/w/d) für den IT-Support
    Bayerischer Verwaltungsgerichtshof, München, Ansbach
  2. Datenschutzkoordinator (m/w/d)
    S-Kreditpartner GmbH, Berlin
Detailsuche

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.

Golem Akademie
  1. Java EE 8 Komplettkurs: virtueller Fünf-Tage-Workshop
    29. November–3. Dezember 2021, virtuell
  2. CEH Certified Ethical Hacker v11: virtueller Fünf-Tage-Workshop
    10.–14. Januar 2022, Virtuell
Weitere IT-Trainings

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


Aktuell auf der Startseite von Golem.de
MS Satoshi
Die abstruse Geschichte des Bitcoin-Kreuzfahrtschiffs

Kryptogeld-Enthusiasten kauften ein Kreuzfahrtschiff und wollten es zum schwimmenden Freiheitsparadies machen. Allerdings scheiterten sie an jeder einzelnen Stelle.
Von Elke Wittich

MS Satoshi: Die abstruse Geschichte des Bitcoin-Kreuzfahrtschiffs
Artikel
  1. Solar Orbiter: Letzter Gruß an die Erde vor der wissenschaftlichen Mission
    Solar Orbiter
    Letzter Gruß an die Erde vor der wissenschaftlichen Mission

    Die Esa-Raumsonde Solar Orbiter soll zur Sonne fliegen. Mit ihrem Vorbeiflug an der Erde beginnt die wissenschaftliche Missionsphase.
    Von Patrick Klapetz

  2. Gigafactory Berlin: Tesla verzichtet für Akkufertigung auf staatliche Förderung
    Gigafactory Berlin
    Tesla verzichtet für Akkufertigung auf staatliche Förderung

    Tesla verzichtet für die geplante Akkufertigung in Grünheide bei Berlin auf eine mögliche staatliche Förderung in Milliardenhöhe.

  3. 50 Prozent bei IT-Weiterbildung sparen
     
    50 Prozent bei IT-Weiterbildung sparen

    Die Black Week 2021 in der Golem Karrierewelt läuft weiter: 50 Prozent bei zahlreichen Live-Workshops, Coachings und E-Learnings sparen - noch bis Montag!
    Sponsored Post von Golem Akademie

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Heute ist Black Friday • Corsair MP600 Pro XT 1TB 167,96€ • Apple Watch Series 6 ab 379€ • Boxsets (u. a. Game of Thrones Blu-ray 79,97€) • Samsung Galaxy S21 128GB 777€ • Premium-Laptops (u. a. Lenovo Ideapad 5 Pro 16" 829€) • MS Surface Pro7+ 888€ • Astro Gaming Headsets [Werbung]
    •  /