La gigaseconde Unix et le 11 Septembre

Le
guillaumedock
Comme vous le savez, le temps Unix est dcomp en secondes (y compris
les
secondes intercalaires) depuis le 1er Janvier 1970 temps universel.

Du 03 mars 1973 au 09 septembre 2001, cette quantit se reprsente sur
9
chiffres dcimaux exactement. Le basculement de 9 10 chiffres a eu
lieu
le dimanche 9 septembre 2001 01:46:40 UTC.

Cet instant est parfois appel "billenium", contraction de billion
(10^9)
et millenium. Un certain nombre de systmes ont connu des bugs cet
instant. On peut facilement imaginer une colonne SQL limite 9
chiffres dcimaux, ou bien un timestamp formatt sur 9 chiffres et
mal pars, ou un buffer overflow (faut le faire, le buffer radin
9 octets).

On peut imaginer que des systmes financiers, bancaires ou de scurit=

ont connu un dysfonctionnement cette date. C'tait dimanche. Si
le problme a t constat lundi, le temps de trouver le bon ing=
nieur
etc. et il est facilement mardi.

Mardi 11 septembre 2001, 08:46:40 heure d't de New York (EDT),
un avion impacte la tour nord du World Trade Center.

Cet instant correspond au billenium, plus 59 heures.

Quand je dis 59 heures, c'est 59 heures, 00 minutes, et 00 secondes.
Vous remarquerez par ailleurs que 08:46:40 n'est pas une heure
spciale.
Mme si on n'est pas trs loin du quart d'heure, c'est intriguant.

Bref, on sait qu'il y a eu des oprations financires bizarres juste
avant le 11 septembre. Ces oprations taient-elles l'exploitation
d'un "billenium bug" affectant des systmes financiers (ou de
surveillance
des marchs financiers?)

On peut aussi imaginer que des programmeurs vreux aient sciemment
insr des "billenium bugs" pour ensuite vendre l'information leurs
copains traders.

chacun de se former une opinion.

Mais la date du 11 septembre est aussi particulire par rapport au
billenium bug.

Un ordinateur qui se serait embrouill les pdales cause de ce
billenium bug,
s'embrouillerait le samedi 9 septembre 21:46:40. Il se croirait
alors
mercredi 31 dcembre 1969. Le prochain samedi qu'il verra sera le
samedi 3
janvier 1970. En ralit il sera dans la nuit du mardi 11 au mercredi
12
septembre 2001, 00:33:20.

Maintenant si vous avez un systme ou vous lancez un job et que celui-
ci
calcule le temps de sa prochaine invocation qu'il programme avec cron,
et qu'il utilise le jour et l'heure, le scnario suivant peut se
drouler.

Disons que notre job s'excute habituellement tous les quarts d'heure.
Il est samedi 09 septembre. 21h45 la tche s'excute, et se
reprogramme
pour samedi 22h00.

Imaginons que le cron en question souffre du millenium bug (par
exemple
parce qu'en fait c'est un systme maison de programmation de tches
distance, et que leur protocole pourri n'a que 9 chiffres pour le
timestamp,
ou quelque chose comme a.)

Le samedi 22h00 qu'il attendra aura donc lieu en fait le mercredi 12
septembre
2001 00:46:40, que le programme verra comme le samedi 3 janvier 1970
22:00.

Entretemps, c'est--dire depuis le samedi 9 septembre, la tche ne
sera pas excute.

Donc le 11 septembre est, pour une certaine classe assez raisonnable
de
billenium bugs, le dernier jour o une tche devant s'excuter
priodiquement
aurait t suspendue depuis le bug.

--
Guillaume D'Ock
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain Montfranc
Le #18738221
guillaumedock a écrit
Le basculement de 9 à 10 chiffres a eu lieu
le dimanche 9 septembre 2001 à 01:46:40 UTC.



Mardi 11 septembre 2001, à 08:46:40 heure d'été de New York (EDT),
un avion impacte la tour nord du World Trade Center.



Soit 13h46 en UTC

Cet instant correspond au billenium, plus 59 heures.



60 plutôt non ?
rixed
Le #18749171
> On peut facilement imaginer une colonne SQL limitée à 9
chiffres décimaux, ou bien un timestamp formatté sur 9 chiffres et
mal parsé, ou un buffer overflow (faut le faire, le buffer radin à
9 octets).



Un exemple vécu de billenium bug : une liste de tuples triée
alphanuméricalement par timestamp : passé le billenium ça ne
fonctionnait plus.
Publicité
Poster une réponse
Anonyme