Die Zeitsysteme des Linux-Kernels stolperten über die Schaltsekunde.
Die Zeitsysteme des Linux-Kernels stolperten über die Schaltsekunde. (Bild: Andreas Donath/Golem.de)

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.

Anzeige

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.

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.

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.


muh3 05. Jul 2012

also erstmal nen Fisch: leider kommt das im Artikel raus, aber der Fehler wurde...

neocron 04. Jul 2012

das hat er doch gar nicht behauptet?

_4ubi_ 04. Jul 2012

Entweder hast du dich verlesen oder das wurde nachträglich geändert.

Kommentieren



Anzeige

  1. Senior SAP Solution Inhouse Consultant (m/w)
    Leica Camera AG, Wetzlar
  2. Ingenieur (m/w) Funktionsabsicherung für Airbagelektronik
    Automotive Safety Technologies GmbH, Ingolstadt, Gaimersheim
  3. Informatiker / Datenbankadministrator (m/w) Oracle
    Autobahndirektion Nordbayern, Nürnberg, Ebern
  4. Software Developer - Cloud Services (m/w)
    Bosch Software Innovations GmbH, Berlin

Detailsuche


Blu-ray-Angebote
  1. NEU: 10 Blu-rays für 50 EUR (nur 5€ pro Film!)
    (u. a. Watchmen, Hulk, Ohne Limit, Iron Man 3, RED 2, Mission Impossible Phantom Protokoll, Hänsel...
  2. VORBESTELLBAR: Der Hobbit Trilogie - Extended Edition [3D Blu-ray]
    145,99€ (Vorbesteller-Preisgarantie)
  3. VORBESTELLBAR: Terminator: Genisys Skull & 3D Steelbook (+Blu-ray) [Limited Edition]

Weitere Angebote


Folgen Sie uns
       


  1. Autosteuerung

    Uber heuert die Jeep-Hacker an

  2. Contributor Conference

    Owncloud führt Programm für Bug-Bounties ein

  3. Flexible Electronics

    Pentagon forscht mit Apple und Boeing an Wearables

  4. Private Cloud

    Proxy für Owncloud soll Heimnutzung erleichtern

  5. Geheimdienste

    NSA kann weiter US-Telefondaten sammeln

  6. Die Woche im Video

    Diskettenhaufen und heiße Teilchen

  7. Frankfurt

    Betreiber modernisieren Mobilfunknetz der U-Bahn

  8. 3D-Varius

    Pauline, die Geige aus dem 3D-Drucker

  9. Vectoring

    Telekom zählt eigenes 50 MBit/s nicht als 50 MBit/s

  10. Headlander

    Mit Köpfchen in die 70er-Jahre-Raumstation



Haben wir etwas übersehen?

E-Mail an news@golem.de



Helium-3: Kommt der Energieträger der Zukunft vom Mond?
Helium-3
Kommt der Energieträger der Zukunft vom Mond?
  1. Stratolaunch Carrier Größtes Flugzeug der Welt soll 2016 erstmals starten
  2. Escape Dynamics Mikrowellen sollen Raumgleiter von der Erde aus antreiben
  3. Raumfahrt Transformer sollen den Mond beleuchten

20 Jahre im Einsatz: Lebenserhaltende Maßnahmen bei Windows 95
20 Jahre im Einsatz
Lebenserhaltende Maßnahmen bei Windows 95
  1. Tool Microsoft Snip erzeugt Screenshots mit Animationen und Sprachmemos
  2. Windows-10-Updates Microsoft intensiviert die Geheimniskrämerei
  3. Vor dem Start von Windows 10 Steigender Marktanteil für Windows 7

The Flock im Test: Versteck spielen, bis alle tot sind
The Flock im Test
Versteck spielen, bis alle tot sind
  1. Lara Go im Test Tomb Raider auf Rätseltour
  2. Ronin im Test Auftragsmord mit Knobelpausen
  3. Test Til Morning's Light Abenteuer von Amazon

  1. Re: schlechter GNU/Linux support

    spiderbit | 22:51

  2. Re: Hartnäckigkeit zahlt sich eben doch aus! :)

    Jasmin26 | 22:46

  3. Re: Grausam

    plutoniumsulfat | 22:45

  4. Re: Wird endlich mal zeit

    plutoniumsulfat | 22:44

  5. Re: fahrerlose taxis

    Jasmin26 | 22:38


  1. 12:46

  2. 11:30

  3. 11:21

  4. 11:00

  5. 10:21

  6. 09:02

  7. 19:06

  8. 18:17


  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