[antirez.com.nyud.net]TL;DR La moralité de cette histoire ? Vos applications, aussi bien conçues soient-elles, peuvent crasher face à des bits modifiés au niveau matériel (dans les barettes de RAM ou lors de transferts réseau). Peu importe quel soin vous apporterez à la gestion d'erreur, vous *aurez* des erreurs que l'appli ne saura pas gérer.
Je pensais ce genre d'erreur assez peu courante, mais avoir avoir lu le bitsquatting (
http://sebsauvage.net/links/?pTGGOw), cela semble arriver de manière assez régulière.
Bottom line: Vous n'arriverez pas à reproduire certain bugs signalés par les utilisateurs. Jamais. Il faudra alors se résoudre à fermer les tickets correspondants.
Et faites systématiquement des memtest86: Les barettes de RAM peuvent réserver des susprises. Mais notez bien que même avec un test memtest86 100% OK, des modifications de bits PEUVENT survenir de manière aléatoire:
http://www.commentcamarche.net/faq/3868-mythes-les-rayons-cosmiques-provoquent-des-erreurs
EDIT: Kevin M. (par email, publié avec son accord) résume bien le problème:
« Sur les milliards d'ordinateurs actuellement en marche dans le monde, avec miniaturisation croissante des composants, l'absence de structure de contrôle à un niveau matériel assez bas (ce qui est d'ailleurs de l'ordre de l'impossible sauf à diviser la cadence utilisable des processeurs), je pense que c'est tout sauf "rare", même sans compter sur les rayonnements cosmiques.
Le nombre de devices électroniques par personne explose (beaucoup ont un PC, un smartphone et peut-être même une tablette, quand ce ne sont pas plusieurs appareils du genre dans mon cas), le net devient omniprésent et si le taux d'erreur reste marginal, l'augmentation du nombre d'appareils augmente mécaniquement le nombre (en valeur) d'erreurs. Si on y ajoute à ça des interférences multiples (de la collision de paquets au micro-ondes mal isolé) on arrive à un nombre qui commence à être intéressant à exploiter.
Le gens doivent comprendre que les appareils électroniques sont faillibles, même les mieux conçus. C'est à ça que sert la redondance (des données, des réseaux ou des machines) et qu'il est vital de pouvoir entièrement mécaniquement couper un système critique. Et ne serait-ce que pour cette unique raison, le vote électronique, par exemple, ne devrait jamais être autorisé. Mais apparemment, ce message ne passe pas. »