Schaltsekunde: Zeitgeber des Linux-Kernels verursachen Serverausfälle

Fehlende Kommunikation zwischen der Systemzeit des Linux-Kernels und dem High-Resolution-Timer ist schuld daran, dass die Schaltsekunde zahlreiche Server aus dem Tritt brachte.

Artikel veröffentlicht am ,
Die Zeitsysteme des Linux-Kernels stolperten über die Schaltsekunde.
Die Zeitsysteme des Linux-Kernels stolperten über die Schaltsekunde. (Bild: Andreas Donath/Golem.de)

Die zusätzliche Schaltsekunde am 1. Juli 2012 hatte zum Ausfall zahlreicher Linux-Server geführt. In einer ersten Analyse hat Kernel-Entwickler Jonathan Corbet die beiden Zeit-Subsysteme als Fehlerquelle ausgemacht, die der Linux-Kernel bereitstellt. Die vom Kernel benutzte Systemzeit hat dem seit Kernel 2.6.16 eingeführten High-Resolution-Timer (Hrtimer) die Schaltsekunde nicht korrekt mitgeteilt.

Stellenmarkt
  1. Testingenieur (w/m/d) in der Automobilindustrie
    Vdynamics GmbH, München
  2. Digital Operation Manager (m/w/d)
    Bundeskriminalamt, Wiesbaden
Detailsuche

Der Hrtimer verwendet intern eigene Zeitgeber, die unterschiedliche Zeitabstände zur Systemzeit haben. Die Realtime-Uhr in Hrtimer passt sich beispielsweise an die Systemzeit an, während die Monotonic-Uhr nicht gestellt werden kann, sie läuft immer nur vorwärts. Die Realtime-Zeitgeber sind von der jeweiligen CPU abhängig, denn diese können auch auf einem einzigen System unterschiedlich laufen. Der Hrtimer rechnet die von ihm ausgelesene Systemzeit in die entsprechenden Werte um, die von der Realtime-Uhr eines Prozessors genutzt werden können.

Fehlende Kommunikation zwischen Systemuhren

In der Kommunikation mit dem Hrtimer nutzte der Kernel nach seiner eigenen Anpassung der Systemzeit an die Schaltsekunde die abschließende Funktion clock_was_set() nicht. Das Resultat: Der Hrtimer lief eine Sekunde vor.

Für die meisten Anwendungen war das kein Problem, schreibt Corbet. In einigen Anwendungen laufen entsprechende Zeitschalter aber in weniger als einer Sekunde ab. Da die Timer nach einem Neustart wieder über die zusätzliche Sekunde stolperten, versetzen sie die jeweilige Anwendung in eine Endlosschleife, wie es mehrfach geschehen ist.

Golem Akademie
  1. Elastic Stack Fundamentals – Elasticsearch, Logstash, Kibana, Beats: virtueller Drei-Tage-Workshop
    26.–28. Oktober 2021, Virtuell
  2. C++ Programmierung Basics: virtueller Fünf-Tage-Workshop
    13.–17. Dezember 2021, virtuell
Weitere IT-Trainings

Der Befehl date; date `date +"%m%d%H%M%C%y.%S"`; date; behob das Problem meist ohne Server-Neustart. Einem weiteren Kommentar zufolge reicht der Befehl date -s "`date`".

Patch für Zeitangaben

Der Patch, den Kernel-Hacker John Stultz inzwischen eingereicht hat, reimplementiert die Funktion clock_was_set() in dem Schaltsekundencode, der sich bereits im Kernel befindet. Die Funktion wurde 2007 entfernt, da sie als vernachlässigbar galt. Allerdings muss die Funktion für jede CPU ausgeführt werden, was die Entwicklung des Patches etwas erschwerte.

Wann die nächste Schaltsekunde eingefügt wird, lässt sich nur schwer voraussagen, denn die Erdrotation nimmt nicht stetig ab. Corbet plädiert jedoch dafür, dass Entwickler und Distributoren ein solches Szenario testweise durchführen, um künftig Probleme zu vermeiden.

Seit der ersten Anpassung 1972 wurden insgesamt 35 Sekunden hinzugefügt.

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
Wemax Go Pro
Mini-Projektor für Reisen strahlt 120-Zoll-Bild an die Wand

Der Wemax Go Pro setzt auf Lasertechnik von Xiaomi. Der Beamer ist klein und kompakt, soll aber ein großes Bild an die Wand strahlen können.

Wemax Go Pro: Mini-Projektor für Reisen strahlt 120-Zoll-Bild an die Wand
Artikel
  1. Snapdragon 8cx Gen 3: Geleaktes Qualcomm-SoC erreicht das Niveau von AMD und Intel
    Snapdragon 8cx Gen 3
    Geleaktes Qualcomm-SoC erreicht das Niveau von AMD und Intel

    In Geekbench wurde der Qualcomm Snapdragon 8cx Gen 3 gesichtet. Er kann sich mit Intel- und AMD-CPUs messen, mit Apples M1 aber wohl nicht.

  2. Air4: Renault 4 als Flugauto neu interpretiert
    Air4
    Renault 4 als Flugauto neu interpretiert

    Der Air4 ist Renaults Idee, wie ein fliegender Renault 4 aussehen könnte. Mit der Drohne wird das 60jährige Jubiläum des Kultautos gefeiert.

  3. MS Satoshi: Die abstruse Geschichte des Bitcoin-Kreuzfahrtschiffs
    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

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 • Black Friday Wochenende • LG UltraGear 34GP950G-B 999€ • SanDisk Ultra 3D 500 GB M.2 44€ • 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]
    •  /