Journal Un bug de uClibc bloque le passage à l’heure d’été des box ADSL de Free et Orange

Posté par  .
45
26
mar.
2012

Hier, le passage à l’heure d’été aurait du s’opérer en France, et pour les pays sur le fuseau horaire CEST. Apparemment, les box de Free(v5 et Server v6) et Orange (décodeur TV) n’ont pas eu le mémo. Comment se fait-ce ? Après plusieurs années sans problème de changement d’heure ?
Selon Nicolas Pouillon, cela viendrait d’un bug dans uClibc.

µClibc est une bibliothèque C standard très réduite, souvent utilisée dans l’embarqué. En Novembre dernier, un patch a été envoyé, corrigeant un problème de changement d’heure pour les années bissextiles. Un calcul, lors de l’interprétation des règles de changement d’heure, était erroné, retardant le passage à l’heure d’été d’une semaine, si le dernier dimanche du mois est pile 7 jours avant la fin du mois. C’est donc un bug qui se reproduit seulement tout les 28 ans.
Alors, vont-ils corriger via une mise à jour, ou vont-ils attendre que ça se règle tout seul dimanche prochain ?

Depuis Novembre dernier, deux releases de bugfix de uClibc sont sorties(en décembre et février). Pourtant, aucun des deux opérateurs n’a prit soin de regarder le changelog pour ne serait-ce que backporter le patch dans ses box…

  • # V4

    Posté par  . Évalué à 10.

    Ma Freebox V4 aussi est touchée, remarque normal vu que le firmware n'a pas été MàJ depuis 2007.

    En tout cas merci pour cette explication technique, ça change des « lol free tro nul » que je n'ai que trop lus depuis hier.

  • # C'est récurent

    Posté par  . Évalué à 2.

    Depuis le temps il n'existe toujours pas un moyen efficace, genre un jeu un peu complêt de tests unitaires de référence pour tester ce type de code ?

    • [^] # Re: C'est récurrent

      Posté par  . Évalué à 7. Dernière modification le 26 mars 2012 à 15:30.

      Les tests unitaires sont en général vraiment difficiles à programmer. En soi, le système et déjà compliqué. Par exemple intuitivement on pense que les minutes ont 60 secondes (et paf, voilà la seconde intercalaire)

      En plus, il y a évidemment les "particularités régionales".

      Mais si tu te sens la volonté de programmer un test unitaire, je suis sûr que les développeurs t'en seront reconnaissants :-)

      • [^] # Re: C'est récurrent

        Posté par  . Évalué à 4.

        Proposer un jeu de test != programmer un jeu de tests :)

        Il s'agirait plutôt d'avoir un jeu d'opérations avec les résultats attendu qui testeraient de manière un peu exhaustive, et c'est justement parce que démêler tout ça n'est pas évident que si quelqu'un qui connaît bien le sujet pouvait le faire une bonne fois pour toute ce serait pas un mal.

        En gros à chaque subtilité il y a des trucs qui buggent de ce côté là, c'est agaçant à force. Tout le monde sait que c'est casse gueule pourtant.

      • [^] # Re: C'est récurrent

        Posté par  (site web personnel) . Évalué à 8.

        Les tests unitaires sont en général vraiment difficiles à programmer.

        Certes. En revanche lire un changelog et backporter un bugfix c'est moins dur.
        On ne peut pas dire que cette histoire inspire vraiment confiance quand au sérieux de ces FAI.

        • [^] # Re: C'est récurrent

          Posté par  . Évalué à 2.

          Moi, je vois la chose un peu autrement.

          Soit la R&D de Free a vu le patch, mais la décision de ne pas backporter a été prise pour des raisons diverses. technique: incompatibilité du patch avec un autre patch. non disponibilités de ressources, livraison "groupé" de correctif mais pas déployé à temps… C'est alors excusable, et ils auraient du communiquer l'arrivée de l'erreur.

          Soit la R&D de Free n'a vu le patch, et dans ce cas, ils sont en dessous de tous.

          Dans tout les cas, cette erreur fait tâche. Ca fait un peu firmware fini à la pisse.

          • [^] # Re: C'est récurrent

            Posté par  . Évalué à 4.

            T'es sérieux là ? Tu veux dire que Free pourrait communiquer sur un truc ou de valider les trucs qu'ils poussent ? Rassures moi t'as pas de Freebox ?

          • [^] # Re: C'est récurrent

            Posté par  . Évalué à 9.

            Soit la R&D de Free n'a vu le patch, et dans ce cas, ils sont en dessous de tous.

            Moi ca me surprendrait pas qu'ils ne l'aient pas vu. Quand tout fonctionne à peu près bien, qu'il n'y a pas de problème majeur connu, tu t'empresses pas de mettre à jour la uClibc des qu'une nouvelle version est disponible. Ca demande sans doute quelques tests pour verifier que ca casse rien ce genre de mise à jour, donc ca doit pas se faire tout le temps. Et ils auraient pu voir le problème dans le changelog, mais au milieu de tout un tas d'autres choses, c'est facile de passer à coté.

      • [^] # Re: C'est récurrent

        Posté par  (site web personnel) . Évalué à 1.

        C'est au contraire un système que se prête très bien aux tests unitaires et aux tests fonctionnels.

        Donc la réponse à la question est non, il n'y a pas de tests unitaires bien que ce serait très facile à tester.

  • # Méga coup de chatte ?

    Posté par  (site web personnel, Mastodon) . Évalué à 10.

    Comment le gars qui a fait le patch est tombé dessus ?

    --- a/libc/misc/time/time.c
    +++ b/libc/misc/time/time.c
    @@ -689,7 +689,7 @@ static int tm_isdst(register const struct tm *__restrict ptm,
                        ++day;
                    }
                    monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
    -               if (isleap && (r->month > 1)) {
    +               if (isleap && (r->month == 2)) {
                        ++monlen;
                    }
                    /* Wweekday (0 is Sunday) of 1st of the month
    
    

    Je sais pas en quelle partie c'est de la chatte, mais je dis chapeau ! Par-ce que tomber sur cette partie du code qui dois pas bouger des masses et réflechir à la règle et penser au dimanche magique, c'est improbable.

    Du coup, je pense qu'effectivement des gens ont fait des tests poussés, peut-être pas des tests unitaire comme dis plus haut mais de bon tests.

    • [^] # Re: Méga coup de chatte ?

      Posté par  . Évalué à 4. Dernière modification le 26 mars 2012 à 17:26.

      La seule possibilité que je vois c'est un test en grandeur réel, tous les 6 mois, du prochain changement d'heure. Je ne sais pas qui a soumis le patch (ironiquement, il a une adresse en free.fr :-) ), mais il semblerait logique que de nombreuses entreprises fassent quand même ce genre de tests.

    • [^] # Re: Méga coup de chatte ?

      Posté par  . Évalué à 10.

      Pour info, c'est moi qui est fait ce patch, et ce n'est absolument pas un coup de chatte, il suffit simplement de relire le code, et ça semble évident.
      Petite explication:
      r->month correspond au mois, isleap est vrai si on est dans une année bissextile. Ce bout de code ajoutait un jour à tous les moins après le mois 1, soit après le mois de janvier, or le seul mois qui gagne 1 jour les années bissextiles est le mois de Février.
      C'est simple non?
      J'avoue quand même que j'ai du relire le code plusieurs fois avant de voire cette incohérence.
      (pour ceux qui pense que c'est un troll, suffit de regarder le mail associé au patch et mon mail…)

    • [^] # Re: Méga coup de chatte ?

      Posté par  . Évalué à 1.

      Ouais, Guillaume est magique (et moi je suis improbable mais on s'en fout).

      On est juste un peu déçu que ça n'ait pas été le chaos mondial (imaginez, par exemple, si ça avait aussi touché Android, mouahaha). Sinon, merci au testeur qui a remonté ça (je ne sais pas exactement comment le bug est arrivé jusqu'à Guillaume), et vive le code pur, bien sûr !

  • # Étrange

    Posté par  . Évalué à 2.

    Mon décodeur TV Orange est pourtant passé à l'heure d'été…
    En plus, il me semble que l'heure se synchronise avec un serveur distant car si je reboote et que la plate-forme TV d'Orange n'est pas dispo, l'heure redémarre à 00:00 le 1er janvier 2011 (il me semble). Donc pour les Orange, essayez de rebooter la box…

    Peut-être aussi je n'ai pas le bug car j'ai la "nouvelle interface TV". Ceci dit, c'est une bien maigre consolation quand je vois la foule de nouveaux bugs qui ont été introduits….

    Bon ceci dit, si le patch a été envoyé en novembre dernier, ce couac est plus excusable. On peut imaginer que quand on a quelques millions de box dans la nature, le cycle de patch/revalidation/déploiement soit assez long…

    • [^] # Re: Étrange

      Posté par  (site web personnel) . Évalué à 9.

      Bon ceci dit, si le patch a été envoyé en novembre dernier, ce couac est plus excusable. On peut imaginer que quand on a quelques millions de box dans la nature, le cycle de patch/revalidation/déploiement soit assez long…

      En quoi c'est excusable ? On est quand même à 4 - 5 mois là…
      Et faut pas avoir une freebox pour parler de revalidation/déploiement…
      En général ils sont bien capables de balancer des mises à jour n'importe quand, surtout plusieurs fois pas mois dans certains cas, donc il n'y a pas vraiment d'excuse.
      Et le silence de free est comme d'hab, ils savent qu'ils ont merdé (que ce soit de leur faute directe ou de µclibc finalement c'est leur problème, pas celui de l'utilisateur) donc ils se taisent. On les entends beaucoup plus quand il s'agit de descendre Orange/Bouygues/sfr…

      • [^] # Re: Étrange

        Posté par  . Évalué à 1.

        Oui en fait j'avais plutôt en tête Orange dans mon commentaire. Chez eux les mises à jour des box sont beaucoup plus espacées… Et connaissant un peu la boite, ça ne m'étonnerait pas qu'une modif' de ce genre puisse mettre du temps à arriver…
        Ceci dit, d'après mon expérience, le décodeur Orange semble bien se mettre à l'heure. D'ailleurs en jetant un coup d’œil rapide dans les forums, je n'ai pas vu de clients Orange remonter ce problème.

        Par contre chez Free c'est certain, vu le nombre de mises à jour par an et la propension à utiliser leurs clients comme beta-testeurs, ils auraient pu inclure le patch…

        • [^] # Re: Étrange

          Posté par  . Évalué à 10.

          Ce sont deux politiques très différentes.

          Orange tu peux profiter longtemps de tes bugs, apprendre à vivre avec, les contourner jusqu'à les oublier.
          Free te propose de la diversité, le bug d'aujourd'hui n'est pas le bug de demain. Tu ne risques pas de t'endormir comme ça.

    • [^] # Re: Étrange

      Posté par  . Évalué à 4.

      J'imagine que la synchronisation se fait via sntp et concerne l'heure utc.
      Charge à la box de t'afficher la bonne heure locale à partir de ça. Vu qu'on parle ici de la uClibc c'est sans doute là que réside le bout de code qui doit te calculer l'heure locale à partir de l'heure utc et de ton emplacement géographique.

      Moi j'y comprends rien mais je sais que mon décodeur tv orange était en effet à la bonne heure hier.

  • # Orange ?

    Posté par  (Mastodon) . Évalué à 0.

    Bon, heu, comment dire … ?
    Ce sont les LiveBox v1 qui semblent avoir été touchées, d'après les témoignages lus par ci par là. Chez moi (livebox 2 FO) comme chez d'autres, aucun bug : passage en heure d'été sans moufter.

    Donc, en fait… FreeBox v5 = LiveBox v1
    Et zou, ça c'est fait …

    c'est pas que je sois fanboy, hein, l'historique est là, c'est juste que Free Fail, et c'est pas la peine de chercher des amis pour couler avec lui. Sur ce coup là

  • # Précisions

    Posté par  . Évalué à 1.

    Je viens de voir qu’il y a une erreur dans le titre, le u de uClibc s’est perdu lors d’un copier/coller (si un modo passait dans le coin).

    Je parle des boxs TV d’Orange dans le journal, et si certains ne sont pas touchés, c’est tout simplement parce que l’opérateur a plusieurs types de box différentes, venant de différents fabricants. Je ne les connais pas toutes.

    Pour Free, si le Freebox Player n’est pas touché, c’est parce qu’il utiliserait une libc différente (eglibc?). D’où l’intérêt, parfois, d’avoir des logiciels variés et concurrents dans un parc hétérogène: un problème critique n’affecte pas tout le monde.

    Je souhaitais saluer également Free qui a laissé la main libre à l’équipe Freebox pour participer au bug tracker public officieux mit en place par le projet FreePlayer. Une telle transparence n’est pas sans coût, elle expose par exemple aux attaques comme dans ce journal.

  • # Non mais osef quoi !

    Posté par  (site web personnel) . Évalué à -5.

    Sous ce titre un peu digne de rien du tout, je m'en vais dénoncer grave. Vous vous rendez compte que l'on ne parle que d'une problème de changement d'heure sur la freebox.

    L'heure de la freebox ce n'est pas le truc le plus critique en ce moment, Free pourrait plutôt s'occuper du réseau téléphonique qui est tout le temps occupé, ou des chaînes TV qui ne passent plus car "Le début n'est pas suffisant". Mais l'heure ? WTF, au pire vous aller rater l'enregistrement du second épisode de Stargate SG1, mais bon, on les a déjà tous vu trente fois… (grr, il va falloir le regarder sur le replay), mais sinon…

    Ce qui serait intéressant c'est de savoir si des failles critiques de la libc sont présentes dans les boxs et là on pourrait hurler au scandale. Mais là… Il n'y a rien de critique…

    Cela permet aussi de se la péter au (bar|club de gym|salle d'escalade|bibliothèque) du coin en expliquant d'où vient le problème. Cela peut aussi permettre de parler du libre. Grâce à ce bug j'ai présenté le libre à dix personnes aujourd'hui qui sont ressorties convaincues ;)

    Puis ça m'a bien fait marrer.

    Puis cela à bien justifié dix minutes de pause de plus au café.

    Bref, pas de quoi en faire un fromage (miam !)

    • [^] # Re: Non mais osef quoi !

      Posté par  . Évalué à 10. Dernière modification le 27 mars 2012 à 01:28.

      Non le vrai problème c'est : le changement d'heure a-t-il une utilité quelconque ? À part faire bosser des informaticiens qui ont déjà des tas de trucs à faire….

      C'est appliqué dans plein de pays donc il doit bien y avoir une raison, ce serait une économie d'énergie… Je me demande si c'est vraiment efficient.

      • [^] # Re: Non mais osef quoi !

        Posté par  . Évalué à 9.

        Personnellement, pouvoir passer une heure de plus sur la terrasse le soir en été, je trouve ça agréable.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Non mais osef quoi !

          Posté par  (site web personnel) . Évalué à 4.

          Personnellement, pouvoir passer une heure de plus sur la terrasse le soir en été, je trouve ça agréable.

          Tu peux le faire en hiver aussi hein :)

      • [^] # Re: Non mais osef quoi !

        Posté par  . Évalué à 4.

        • [^] # Re: Non mais osef quoi !

          Posté par  . Évalué à 4.

          A quoi bon éviter 44 000 tonnes de CO2 si on rate l'enregistrement de l'épisode 2 de SG1…
          Franchement à quoi pense l'état, faudrait voir à se mettre en phase avec les priorités du peuple quand même !

        • [^] # Re: Non mais osef quoi !

          Posté par  (site web personnel, Mastodon) . Évalué à 5.

          Et si on restait à l'heure d'été toute l'année, ça ne le ferait pas ? Moi c'est l'heure d'hiver que je n'aime pas.

        • [^] # Re: Non mais osef quoi !

          Posté par  . Évalué à 4.

          J'ai répondu à ton commentaire bookmark, un copier/coller de ma réponse :

          Des chiffres sans comparaisons ne veulent rien dire. Un gain de 440 GWh/an est tout à fait négligeable pour un pays tel que la France, pour rappel la consommation est de l’ordre de 500TWh/an, soit 1000 fois plus. Les économies réalisées sont donc de l’ordre du millième, soit tout à fait négligeables. Le cout est lui, et contrairement à ce que vous dites, non nul, mais ce n’est pas l’État qui le paye, mais tout un chacun en perdant du temps, en déréglant son horloge biologique, en complexifiant les systèmes traitant les heures. Le changement d’heure ne sert à rien et n’est conservé que pour des raisons historiques.

    • [^] # Re: Non mais osef quoi !

      Posté par  (site web personnel) . Évalué à 1.

      Sauf qu'étrangement beaucoup de freebox rament/déconnent depuis ce problème (pourquoi, aucune idée je vois pas trop le lien, même si de nombreuses personnes s'en plaignent)
      Et oui, le fait de merder tous les enregistrements n'est pas négligeable non plus (et c'est le réelle problème, l'heure comme tu dis, on s'en fout, l'enregistrement c'est pas tout à fait pareil)

      Mais surtout, comme d'habitude, au delà du problème d'heure c'est surtout que, comme d'habitude, free réalise ses produits avec un niveau d'exigence même pas digne d'un amateur, pas foutu de communiquer et qui, au final, prend tout comme les autres ses clients pour des pigeons.
      M'enfin je suis d'accord, pas de quoi en faire un fromage c'est pas nouveau.

    • [^] # Re: Non mais osef quoi !

      Posté par  (site web personnel) . Évalué à 6.

      Ben si, c'est embêtant pour plusieurs raisons. Entre autre et en ce qui me concerne :
      - le freebox est supposée indiquer l'heure. Chez moi, c'est l’horloge de référence
      - le bug affecte l'enregistrement des chaînes
      - après leur brillante démonstration d'incompétence en téléphonie mobile, c'est encore un bug facilement évitable qui se traîne et qui n'est toujours pas corrigé plusieurs jours après son apparition.

    • [^] # Re: Non mais osef quoi !

      Posté par  . Évalué à 2.

      Faudrait surtout dire à Xavier que les bugs de changements d'heure il n'était pas obligé de les copier aussi de son idéal pommé :)

      -->[]

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.