Page 1 of 1

Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou réparer

Unread postPosted: 03 Oct 2016, 20:55
by critor
73637362Pour cette rentrée 2016, nombre d'entre vous avez rencontré de graves problèmes sur votre TI-83 Premium CE.
La calculatrice plantait et le système était alors incapable de redémarrer correctement, se bloquant sur un écran blanc avec un éventuel motif régulier en bas. La calculatrice devenait donc inutilisable, et sans outils extérieurs il était impossible de la débloquer - le bouton 'reset' au dos ne changeant strictement rien au problème. :mj:
Imaginez le drame, si cela se produisait pendant un devoir... :#roll#:

C'était bien évidemment un bug dû à l'utilisation d'un programme assembleur particulier, mais lequel ? Personne ne nous donnait exactement le même contexte et c'était là toute la difficulté : le bug, qui probablement arrivait à corrompre la mémoire Flash, n'était pas visible immédiatement car se déclenchant à retardement, au prochain plantage/reset.

D'une part, nous te sortons aujourd'hui un tutoriel te permettant de réparer toute machine dans une telle situation. :)
Tu perdras l'intégralité des données de la machine, applications et système d'exploitation compris. Il n'y a hélas rien à faire, une fois que la calculatrice s'est bloquée avec une mémoire d'archive corrompue il est déjà trop tard... :'(

Après avoir demandé quels programmes assembleur avaient été utilisés sur les machines des victimes et recoupé plusieurs témoignages, nos soupçons se sont arrêtés sur le jeu 2048 CE diffusé par Cemetech. Toutes les personnes avaient en effet en commun d'avoir joué à ce jeu.
Mais nous n'étions pas au bout de nos peines, car le bug semblait aléatoire, étant loin de se déclencher systématiquement.

Précisons aussi que 2048 CE nécessite l'installation des bibliothèques C, et que le bug pouvait donc aussi bien se situer dans ces dernières.



Ce week-end, nous avons enfin réussi à trouver un moyen de reproduire à coup sûr le bug, ouvrant donc la voie à son analyse et à sa correction ! :bj:
Il se produisait en fait lorsque l'on quittait le jeu sans que plus aucune partie ne soit en cours (après avoir perdu, après avoir gagné, ou encore immédiatement après avoir lancé le programme).
En apparence la calculatrice continuait à fonctionner normalement, mais tout appui sur le bouton 'reset' la rendait immédiatement inutilisable.
Il semblait donc que 2048 CE tentait même dans ces cas-là une écriture du score en mémoire d'archive, et ce fort bizarrement puisqu'il n'y avait forcément rien de neuf à écrire puisqu'aucune nouvelle partie n'était démarrée...

Nous avons immédiatement reporté la méthode de reproduction du bug à l'équipe de développement des bibliothèques C.
Après analyse, il se trouve que c'était la sous-bibliothèque fileioc 2.4 qui ne gérait pas correctement la situation assez particulière provoquée par 2048 CE.
Le bug a été corrigé et la bibliothèque a été mise à jour hier soir, fileioc passant en version 2.5.

Mais... si jamais tu as joué à 2048 CE, il ne te suffit pas de mettre à jour la bibliothèque pour être sorti(e) de l'auberge.
Car ta mémoire d'archive est peut-être déjà corrompue, chose qui ne deviendra visible qu'au prochain plantage, ce qui peut arriver dans des semaines ou même des mois pendant un devoir...

Il est donc urgent de t'occuper de ce problème dès maintenant, si jamais tu as téléchargé les bibliothèques C avant ce 2 octobre 2016 et joué à 2048 CE.

Exposant ce grave problème à l'équipe de développement des bibliothèques C, cette dernière sort aujourd'hui à notre demande un utilitaire permettant de réparer les mémoires d'archive corrompues.
L'utilitaire va scanner les variables de la mémoire d'archive, à l'exception des applications qui y sont enregistrées de façon différente, et :
  • désarchiver les variables corrompues récupérables
  • effacer les variables corrompues irrécupérables
Nous complétons cet utilitaire d'un second tutoriel. Tu pourras donc remettre ta mémoire d'achive en état de marche en minimisant la perte de données, éliminant ainsi tout risque de blocage futur ! :bj:

Attention dans ce dernier cas à ne tenter sur les variables de la mémoire d'archive aucune autre manipulation que celles du tutoriel, pas même une tentative de sauvegarde. :#non#:
Il est de toutes façons déjà trop tard pour les variables corrompues irrécupérables que l'outil effacera.

Toute tentative manuelle de désarchivage (ou d'effacement car techniquement ça revient au même) d'une variable archivée corrompue déclenchera immédiatement le bug décrit plus haut, ce qui veut dire qu'il faudra basculer sur l'autre tutoriel avec une perte totale de la mémoire ! :mj:


Nous tenons à remercier tous les utilisateurs francophones pour leurs signalements détaillés ouvrant la voie ce soir à l'éradication de ce bug, et sans lesquels nous n'aurions pas réussi ! :bj:



Tutoriels :
Téléchargement : Bibliothèques C (avec fileioc 2.5+)

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 03 Oct 2016, 21:10
by Adriweb
Notons tout de même que ce n'est pas très normal que TI ait réussi à faire en sorte que selon uniquement 2 flags tout à fait normaux, la calculatrice peut être amenée à ne plus booter :P
(FileIO n'exploitant aucune faille ou autre bidouille, uniquement du code standard utilisant des APIs normaux - certes il y avait un bug, mais quand même).

Enfin bref, des solutions logicielles et simples existent, c'est l'essentiel.

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 03 Oct 2016, 21:13
by critor
Pas normal que le bouton 'reset' ne te permette pas de récupérer une machine en état de marche, tu veux dire ? ;)

Je suis capable de te sortir au moins une 10aine d'outils, tous techniquement différents, qui te donneront de même un blocage reset-proof de ta TI-Nspire CX, tu sais... :P
Donc ça me choque peut-être bien moins que toi.

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 03 Oct 2016, 21:18
by Adriweb
critor wrote:Pas normal que le bouton 'reset' ne te permette pas de récupérer une machine en état de marche, tu veux dire ? ;)

Au pire, oui, pourquoi pas.

critor wrote:Je suis capable de te sortir au moins une 10aine d'outils, tous techniquement différents, qui te donneront de même un blocage reset-proof de ta TI-Nspire CX, tu sais... :P
Est-ce là aussi la faute à TI ? ;)

Mais là, c'est déjà moins anormal, TI peut dire qu'on n'avait qu'à pas bidouiller, le code natif n'étant pas officiel :P

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 28 Nov 2016, 19:02
by Anonyme0
Le 2048 provoque des RAM CLEARED en plein jeu aléatoirement. Je l'ai constaté deux fois.

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 28 Nov 2016, 20:12
by PT_
20:10:17 [#] [MateoC] Not my problem :P
20:10:08 [#] [MateoC] People just need to clear their OS and reinstall everything
20:09:53 [#] [MateoC] It works fine
20:09:49 [#] [MateoC] That's an old bug

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 28 Nov 2016, 20:15
by Adriweb
Il faudrait surtout savoir si c'est un bug du à une version "ancienne", la faute à pas de chance non-reproduisible ailleurs, ou bien un problème avéré arrivant dans un jeu de circonstances bien précises.

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 28 Nov 2016, 20:17
by Anonyme0
Sur deux calculatrices, avec les dernières libs et des OS différents. Ma calculatrice venait d'avoir une réinstallation complète (RAM CLEARED + OS). Je n'avais jamais eu ça avant, avec les anciennes libs.

Re: Bug fatal 2048CE + fileioc2.4 - comment l'éviter ou répa

Unread postPosted: 28 Nov 2016, 20:18
by Adriweb
C'est déjà mieux niveau contexte. A essayer de reproduire ailleurs pour y [tenter de] voir plus clair, si c'est bien les libs qui ont un soucis.