Abo
  • Services:
Anzeige
Wenn das Kernel-Update fehlschlägt - ein Erfahrungsbericht.
Wenn das Kernel-Update fehlschlägt - ein Erfahrungsbericht. (Bild: Screenshot / Hanno Böck)

Hilfe von Fuse?

Weiter ging die Suche nach Hilfe bei den Fuse-Entwicklern: Direkt auf der Projektmailingliste besteht die Möglichkeit, Fehler zu melden und nach Ideen für mögliche Patches zu fragen. Auf Basis der Resultate des Debuggings für Launchpad entstand so auch ein Bericht an die Fuse-Mailingliste. Leider erwies sich Fuse nicht als das aktivste Projekt der FL/OSS-Szene: Von wenigen Rückfragen abgesehen kam nicht viel hilfreiches Feedback. Am Ende lief die Diskussion darauf hinaus, dass der Fuse-Treiber von Quobyte wohl das Problem sei.

Anzeige

Das war allerdings auszuschließen: Die ganze Idee hinter Fuse besteht darin, dass Nutzer - auch ohne Rechte des Systemadministrators "root" - eigene Dateisysteme anlegen und nutzen. Selbst wenn ein Fuse-Treiber also einen Bug hätte, dürfte dieser niemals zum Absturz des Host-Systems führen. Richtig war hingegen die Anmerkung der Fuse-Entwickler, dass sie in der Lage sein müssen, den Fehler zu reproduzieren. Sonst sei ordentliches Debugging unmöglich - die Entwickler konnten sich schließlich schlecht selbst ein Openstack aufbauen, um unter gleichen Bedingungen zu testen.

Schwer zu reproduzieren

Das Thema Reproduzierbarkeit war komplexer als zunächst vermutet: Zuverlässig trat das Problem eingangs nur dann auf, wenn Openstack auf KVM-VMs zugreifen wollte, deren virtuelle Festplatten auf dem Fuse-Mount lagen. Zwar war das Openstack-Produkt noch in der Beta-Phase. Dennoch war es keine Option, wahllos virtuelle Maschinen der Beta-Kunden abstürzen zu lassen, um das Problem auf Host-Ebene zu debuggen. Aus diesem Grund war die einzige Maschine mit 4.2 längst aus dem Openstack-Verbund ausgeschieden. Aber außerhalb von Openstack war der Fehler zunächst nicht reproduzierbar: Alle Versuche, direkt auf dem Fuse-Mount ohne Openstack und KVM den Fehler auszulösen, schlugen fehl.

Immerhin war damit der nächste Debugging-Schritt klar: Aufgabe war nun, ein Setup zu bauen, das möglichst klein war und mit Standard-Tools von Ubuntu auskam. Gleichzeitig musste sich das Problem mit diesem Mini-Setup aber auch reproduzieren lassen. Weil der Fuse-Treiber für Quobyte offenbar in der Lage war, das Fehlverhalten auszulösen, war Quobyte selbst der nächste Ansprechpartner.

Quobyte liefert

Mit dem Problem konfrontiert waren auch die Quobyte-Entwickler erst einmal ratlos. Der erste Debugging-Ansatz lief auf das Reproduzieren des Problems mit einem anderen Fuse-Treiber als dem eigenen hinaus: NTFS-3G war das Mittel der Wahl. Nach etlichen Tagen des Debuggings dann der Durchbruch: Auch mit einer aktuellen Version von NTFS-3G trat das Problem auf - wenn der NTFS-3G-Treiber gegen die Version 3 der Fuse-Bibliothek gelinkt ist. Langsam ließen sich Details ausmachen: Der Absturz passierte nur bei asynchronem, direktem I/O-Zugriff (asynchronous direct I/O). Dieser ist erst in Version 3 der Fuse-Bibliothek verfügbar. Die Version 2, die bei allen Distributionen zum Einsatz kommt, unterstützt diese Funktion nicht.

Quobyte war es damit gelungen, eine generische Basis zu schaffen, auf der sich das Problem reproduzieren ließ. Und es war auch klar, dass der Bug sich im Fuse-Modul des Linux-Kernels befindet. Dass es ab hier noch mehr als vier Monate dauern würde, bis der kaputte Code identifiziert sein würde, ahnte zu dieser Zeit noch niemand.

Kernel-Changelogs wälzen

Der nächste Schritt auf der To-Do-Liste war, die Kernel-Version ausfindig zu machen, die als erste nachweislich das Problem hatte. Linux 3.19 arbeitete tadellos, Linux 4.2 nicht mehr. Zwischen den beiden Kernels lagen nur zwei weitere Versionen: 4.0 und 4.1. Linux 4.0 funktionierte wie Version 3.19 wunderbar, Linux 4.1 zeigte das gleiche Verhalten wie der Kernel der Version 4.2. Ein Blick in das Git-Verzeichnis des Linux-Kernels offenbarte, dass es zwischen Linux 4.1 und 4.2 tatsächlich Änderungen am Fuse-Modul des Kernels gegeben hat. In jener Änderung musste also der Grund zu finden sein, der Fuse ab Linux 4.2 reproduzierbar zum Absturz brachte. Linux-Urgestein Christoph Hellwig selbst hatte den Patch eingebracht, der ohne Probleme in den Kernel-Code durchgewunken wurde und dort seit Februar 2015 integriert war.

Wieder ergriff Quobyte die Initiative: In mühevoller und wochenlanger Arbeit fanden die Entwickler dort heraus, dass tatsächlich ein Teil des genannten Patches problematisch ist. Denn unter Umständen greift das Fuse-Modul durch eine falsche Reihenfolge von Funktionsaufrufen auf Speicher zu, den es zuvor bereits wieder freigegeben hat.

 Das ProblemProblem betrifft nicht nur einige wenige Nutzer 

eye home zur Startseite
madkiss 15. Apr 2016

Ich halte die Aussage, 4 Monate seien "zu lang", in dieser Pauschalität für irrig...

grumpfel 15. Apr 2016

Weil ich kein Freund von Benchmark bin, weil die wenig den Echtzeit Betrieb wieder...

Mr Miyagi 14. Apr 2016

Das System war nicht lange gestört... Die Problematische Software ist zeitnah...

Phreeze 13. Apr 2016

der Fehler wurde also binnen 1h repariert, und dazu schreibt man dann einen 4 Seiten...

RønnySchmatzler 13. Apr 2016

WD hatte ja auch mal IntelliPark eingeführt, was die Lebensdauer auf wenige Wochen bis...



Anzeige

Stellenmarkt
  1. Robert Bosch GmbH, Leonberg
  2. Bertrandt Ing.-Büro GmbH, Köln
  3. FUCHS PETROLUB SE, Mannheim
  4. Max Bögl Bauservice GmbH & Co. KG, Sengenthal bei Neumarkt i.d.Opf.


Anzeige
Top-Angebote
  1. (u. a. ASUS GeForce GTX 1070 Ti STRIX A8G Gaming 449€ statt 524,90€, Gigabyte Z370 Aorus Ultra...
  2. Xbox One S - Alle 500 GB Bundles stark reduziert

Folgen Sie uns
       


  1. Verbraucherzentrale

    Regulierungsfreiheit für Glasfaser bringt Preissteigerung

  2. WW2

    Kostenpflichtige Profispieler für Call of Duty verfügbar

  3. Firefox Nightly Build 58

    Firefox warnt künftig vor Webseiten mit Datenlecks

  4. Limux-Ende

    München beschließt 90 Millionen für IT-Umbau

  5. Chiphersteller

    Broadcom erhöht Druck bei feindlicher Übernahme von Qualcomm

  6. Open Access

    Konkurrenten wollen FTTH-Ausbau mit der Telekom

  7. Waipu TV

    Produkte aus Werbeblock direkt bei Amazon bestellen

  8. Darpa

    US-Militär will Pflanzen als Schadstoffsensoren einsetzen

  9. Snpr External Graphics Enclosure

    KFA2s Grafikbox samt Geforce GTX 1060 kostet 500 Euro

  10. IOS 11 und iPhone X

    Das Super-Retina-Display braucht nur wenige Anpassungen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Montagewerk in Tilburg: Wo Tesla seine E-Autos für Europa produziert
Montagewerk in Tilburg
Wo Tesla seine E-Autos für Europa produziert
  1. Elektroauto Walmart will den Tesla-Truck
  2. Elektrosportwagen Tesla Roadster 2 beschleunigt in 2 Sekunden auf Tempo 100
  3. Elektromobilität Tesla Truck soll in 30 Minuten 630 km Reichweite laden

Fitbit Ionic im Test: Die (noch) nicht ganz so smarte Sportuhr
Fitbit Ionic im Test
Die (noch) nicht ganz so smarte Sportuhr
  1. Verbraucherschutz Sportuhr-Hersteller gehen unsportlich mit Daten um
  2. Wii Remote Nintendo muss 10 Millionen US-Dollar in Patentstreit zahlen
  3. Ionic Fitbit stellt Smartwatch mit Vier-Tage-Akku vor

E-Golf im Praxistest: Und lädt und lädt und lädt
E-Golf im Praxistest
Und lädt und lädt und lädt
  1. Garmin Vivoactive 3 im Test Bananaware fürs Handgelenk
  2. Microsoft Sonar überprüft kostenlos Webseiten auf Fehler
  3. Inspiron 5675 im Test Dells Ryzen-Gaming-PC reicht mindestens bis 2020

  1. Re: benötigte CPU?!

    ML82 | 05:02

  2. Nachhilfe gewährt

    Trollifutz | 04:57

  3. Re: Für die verdammten 90 Mio Euro...

    dosperado | 04:16

  4. Re: Interessante Entwickung..

    ve2000 | 03:31

  5. Re: Ein überdachter, exclusiver...

    teenriot* | 03:25


  1. 18:40

  2. 17:44

  3. 17:23

  4. 17:05

  5. 17:04

  6. 14:39

  7. 14:24

  8. 12:56


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel