Wer erinnert sich noch an den Y2K-Bug? Die Prophezeiungen der möglichen Auswirkungen für den 1. Januar 2000 machten nur knapp vor dem Weltuntergang halt. Das Problem entstand in den 1960er und 70er Jahren durch einen Mangel an Speicherplatz. Programmierer nutzten bei der Angabe von Jahreszahlen nur Jahr und Jahrzehnt und ließen das Jahrhundert aus. Den Rest könnt ihr euch bestimmt denken.
Das Jahr-2038-Problem
Zum 19. Januar 2038 steht erneut ein Problem an, dass mit dem Zeitstandard zu tun hat. Betroffen werden Systeme sein, die mit 32-Bit laufen und den Unixzeit-Standard nutzen. Das Problem entsteht dadurch, dass viele Computersysteme ein Zeitformat verwenden, das die Anzahl der Sekunden seit der Unix-Epoche (00:00:00 UTC am 1. Januar 1970) zählt und diesen Wert als 32-Bit-Ganzzahl mit Vorzeichen speichert. Der maximale Wert, den eine 32-Bit-Ganzzahl fassen kann, liegt bei 2.147.483.647 (2^31 – 1). Dieser Zähler wird am Januar 2038 um 04:14 überlaufen. Systeme, die auf Kalkulationen basierend auf Zeit und Datum angewiesen sind, wie etwa Datenbanken, kritische Infrastruktur oder Finanzapplikationen, könnten hier weitreichende Probleme haben. Eine potenzielle Folge bei ungepatchten Systemen ist das Zurücksetzen der Zeit auf das Jahr 1900 mit allen Folgeproblemen.
Debian reagiert frühzeitig
Um die Zeiterfassung mit Unixzeit auf 64-Bit umzustellen, hat bei Debian in dieser Woche eine großangelegte 64-bit time_t transition begonnen. Die meisten Systeme laufen heute mit 64-Bit, aber es gibt da draußen auch noch eine Vielzahl an Systemen, die auf 32-Bit setzen, für bestimmte Bereiche der IT wie unter anderem Router, IoT oder Automotive werden diese auch heute noch verkauft. Diese Geräte entstammen überwiegend dem Embedded-Bereich und laufen oft viele Jahre unangetastet. Somit besteht die Gefahr, dass solche Systeme auch 2038 noch in Betrieb sind.
Größte ABI-Transition der Debian-Geschichte
Da viele Distributionen 32-Bit nicht mehr bedienen, laufen solche Systeme oft mit Debian oder einem seiner Derivate. Debian ist in erster Linie besorgt um die Armhf-Architektur, da diese 32-Bit-Architektur am ehesten auch noch in der nächsten Dekade in neuen Systemen zum Einsatz kommen wird. Bei Debian haben 6429 von 35960 Paketen time_t in ihrem Quellcode. Alle diese Bibliotheken müssen gemeinsam migriert werden, da notwendige ABI-Änderungen dies erfordern. Die Umsetzung dieses Plans, der die größte ABI-Transition darstellt, die Debian je durchgeführt hat, erfordert zudem die Massenumbenennung von mehr als 1200 Bibliothekspaketen per NMU. Das Hochladen all dieser gepatchten Pakete in den Experimental-Zweig soll am Wochenende abgeschlossen sein.
Achtung bei Unstable und Testing!
Wenn dann alle unerwünschten Wechselwirkungen erkannt und behandelt sind, erfolgt der Upload nach Unstable und in der Folge nach Testing, denn die 64-bit time_t transition ist eines der Release-Ziele der nächsten Debian Version 13 »Trixie«. Da experimentelle Versionen von GCC 13 und GCC 14 bereits in den Unstable-Zweig hochgeladen wurden, ist dort in den kommenden Tagen und Wochen besondere Vorsicht bei Aktualisierungen angebracht. Gleiches gilt mit zwei Wochen Versatz für Testing. Ich empfehle Füße stillhalten, denn Apt kann in diesem Fall nicht auf alle Probleme hinweisen.

Thema 2038: Die Tage vom ext2 Treiber sind gezählt!
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b960e8093e7a57de98724931d17b2fa86ff1105f
https://bootlin.com/blog/ext2-filesystem-driver-now-marked-as-deprecated/
(ist eventuell eine News wert)
Sehr gut, 2038 steht wie nächtes Weihnachten, völlig überraschend schon morgen vor der Tür.
Aber im Ernst, ich dachte das wäre schon längst erledigt. Da ist aber ja noch richtig was zu tun, auch in anderen Projekten.
Genau das wollte ich fragen: Debian ist ja nicht alleine damit. Was machen die anderen?
Sätestens am 19.01.2028 um 3:14:07Uhr (UTC) fangen die an. 😀
Aber interessant: es gibt auch vorher erstmal das 2036 Problem.
https://de.wikipedia.org/wiki/Jahr-2038-Problem
Der ganze Computerkrams war nie für die Zukunft gedacht. Leider ist uns bis jetzt nichts besseres eingefallen. 😄
Na die basteln an ihrer version der Bugbeseitigung aber eben nicht laut. 🙂
Hallo Ferdinand,
wie immer ein klasse Artikel. Mir als reiner User war nicht einmal bewusst, dass es ein solches Problem gibt. 2000 war klar, aber von 2038 las ich bei Dir zum ersten Mal. Vielen Dank und viele Grüße, Der Andi