Monday, March 09, 2009

497 Tage oder: Der 32 bit Feiertag muß her.

Wie lange sollten technische Geräte laufen ohne ausgeschaltet zu werden? Das mag sicher für jedes Gerät unterschiedlich sein. Ein Auto vielleicht bis der Tank leer ist, Computer, naja ab und an mal ein Neustart schadet da sicher nicht, und ein mal im Jahr fällt sicher der Strom aus. Bei den großen und teueren "IT-Kisten" nimmt man aber irgendwie an, dass die prinzipiell ewig laufen, und man baut USV-Anlagen davor und macht vieles redundant um sicherzustellen, das "ewig" zumindest die 3, 5 oder 10 Jahre zwischen Installation und Ablöse durch etwas moderneres abdeckt.
Wie misst man die unendliche Zeit? Man zerhackt sie gewöhnlich in kleine Stücke und zählt eben diese. Reichten vor einigen hundert Jahren Tage als Einheit ist man heute in Zeiten der Computer irgendwo im Milisekunden Bereich angekommen. Der Programmierer der solche Kisten zum laufen bringen soll, kommt dann z.B. auf folgende Idee. : "Ich zähl einfach alle 10ms eine 32bit Variable um 1 höher und dann passt das schon." 2³² = 4.294.967.296 mal 10ms später merkt er, dass er damit nicht nur richtig lag. Das, was passiert wenn die 32 bit "voll" sind, interessiert ihn kaum, denn dann ist seine Arbeit schon längst fertig,und das Ding "getestet", vermarktet, verkauft und beim Kunden und der Programmierer wohl schon beim nächsten Arbeitgeber. Wenn der Kunde das Teil ewig rennen läßt ist er eben selber schuld denkt er.
Gestern bin ich schon zum zweiten mal, über das "Machwerk" eines solchen Entwicklers gestolpert. Ich weiß nun, dass die Firma ExtremeNetworks ebenso solche Typen beschäftigt wie die Herren von Brocade. Nach exakt 2³² mal 10ms Uptime was ca. 497,1 Tage sind, führen manche deren Geräte ein seltsames Eigenleben. Die, die sich in den Oktober 2007 zurückversetzt fühlen sind da noch harmlos, die die einfach so mal kurz abschalten und neu starten, schon deutlich unerfreulicher.
Unerfreulich ist natürlich auch dass dadurch meine schöne Uptime dahin ist, andererseits ist es, wenn Uptime erst an solchen Bugs scheitert vielleicht eh ein Zeichen, dass man auch vieles richtig macht. Positiv dabei sei zu bemerken, dass 497 Tage genau 71 Wochen sind. Will heißen: Schalte dein Zeug am Sonntag ein, dann spinnt es nach 1,5 Jahren zumindest wieder am Sonntag. Die Firma IBM hatte auch mal Server die sich alle 76 Tage ins Eck gestellt haben. Die zählten dann wohl sogar alle 1ms und verrechnen sich noch dabei, und natürlich hatte ich auch diese in Benutzung und durfte ihnen ihr "verborgenes Geheimnis" entlocken.
Wenn ich nachdenke, in wie vielen Geräten wohl noch solche Bugs schlummern, bin ich stark dafür einmal im Jahr oder zur Not alle 490 Tage einen "Wir-schalten-alle-Geräte-aus-und-wieder-ein-Feiertag" einzuführen, auch wenn ich an diesem Tag dann sicherlich nie frei haben werde.