knasan

Linux and more

Just before sync umount

Seit Kernel 3.0 bekam ich manchmal einen Kernel Bug den ich mir heute näher angesehen habe.
Hierbei ist mir aufgefallen, dass dieser Kernel Bug immer dann aufgetreten ist wenn sysnapshot versuchte meine Backup-Festplatte auszuhängen.

Problem war, der rsync Prozess war beendet und ich versuchte sofort die Festplatte auszuhängen aber manche Schreibprozesse waren noch nicht beendet. Mein erster Test ergab, wenn man drei Sekunden wartete trat dieser Bug nicht auf.

Mir war klar, dass ich irgendwie versuchen musste abzuwarten bis alle caching Vorgänge der Festplatte beendet sind. Dann viel mir ein, da gibt es doch noch „sync“.

Anstatt nun einfach nur drei Sekunden zu warten probierte ich es aus. Also ein „sync“ vor „umount“. Und siehe da, es funktioniert.

Gut das war schnell erledigt. Also gleich noch mein eigener Bug suchen. Es kam mir vor, als würde sysnapshot rsync zwei mal ausführen. Nach einer kleinen Untersuchung stellte ich fest, ja das ist so.

Als ich mir den Codeabschnitt do_umount näher angesehen habe, wurde es mir klar warum. Ich wollte mir eine IF Statement sparen und übergab diese Funktion einfach nochmal „system(rsync_cmd)“, ich nahm an dies liefert mir true oder false, was ja auch so ist. Mir war jedoch nicht bewusst, das hierbei der Befehl nochmal aufgerufen wird.

Nachdem ich diesen Bug bereinigt habe stellte ich fest – wow weniger CPU Verbrauch!

Also heute war ein erfolgreicher Tag für mich und Sysnapshot 🙂

Advertisements

Einzelbeitrag-Navigation

2 Gedanken zu „Just before sync umount

  1. Bin eben durch Zufall auf die Seite gekommen. Gefaellt mir bis jetzt sehr.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: