| ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
Description du phénomène
Circonstances
Que faire ?
Mise à jour H7
Fichier vérolé ?
Résumé : dans certaines circonstances imprécises un message d'erreur survient dans Heredis. A sa suite on constate souvent la destruction d'une grande partie des données du fichier généalogique. Ce texte vise à :
Décrire avec précision le phénomène
Regrouper les circonstances et les témoignages
Proposer des solutions ou pistes permettant de récupérer ou d'éviter l'apparition de ce bogue
| |
Description du phénomène |
|
Ce bogue se déclenche surtout avec Heredis 2000 et d'autant plus facilement que la version utilisée n'est pas la dernière. Pour rappel la dernière version de Heredis 2000 est la 5.2.179, datée du 7 septembre 2000, téléchargeable gratuitement sur le site de BSD. L'installation de ce patch diminue les risques d'apparition de ce bogue sans complètement supprimer le risque.
Sous Heredis 2000 ce bogue arrive encore avec les configurations suivantes
:
AMD K6-3 400 Mhz, 64 Mo, - Olivier Laroche
PC PII, 64 M, Windows Me, - Renaud Anzieu
Sous Heredis 2001 ce bogue semble moins fréquent, même s'il s'est déjà produit (trois fois à la date du 17/7/01), mais il faudra attendre encore quelques mois d'utilisation pour confirmer ce sentiment de moindre risque, qui de toute façon n'est pas nul.
Quelques cas certains sont signalés avec la version Heredis 7. La prudence est de mise.
Pour une raison inconnue (nous reviendrons plus loin sur des circonstances possibles de déclenchement), en ouvrant ou en voulant revenir sur Heredis après utilisation d'un autre logiciel ou après une mise en veilleuse de votre ordinateur ... :
on obtient un message d'erreur ressemblant à celui-là : "Heredis Violation d'accès à l'adresse 0091BF49 dans le module 'H6TSTPACKAGE.BPL' Lecture de l'adresse FFFFFFFF' " avec un bouton OK
on clic sur OK , suit un message "Larray pDeleting a locked Array"
résultat : perte TOTALE des Sources et/ou des Liens du fichier, ou parfois d'autres pertes.
on trouve aussi le message "1503 : ID isn't a valid individual identifer".
Remarques :
Il y a beaucoup de variantes de ce messages d'erreur
Il a été signalé souvent que le second message pouvait revenir en boucle sans possibilité de sortie de Heredis autrement que par une interruption brutale (CTRL+ALT+Suppr).
Il semble que souvent le fichier soit totalement vérolé et inutilisable.
Il est aussi possible que le fichier soit même déjà inutilisable avant l'apparition de ce message d'erreur qui ne fait que constater un état de fait.
Il n'existe qu'une seule parade certaine à ce problème : avoir plusieurs versions de sauvegardes. En effet il est aussi possible que votre dernière sauvegarde soit déjà vérolée. Il vaut donc mieux avoir au minimum 4 ou 5 sauvegardes.
| |
Circonstances |
|
Nous allons tenter ici de donner des témoignages précis sur l'environnement et les tâches à effectuer par l'utilisateur quand le bogue survient :
Introduction : avec version 6.1.1.22 par Renaud Anzieu
Avec la version Heredis 2001 ce problème est devenu extremement rare.
Mais on ne peut pas dire qu'il soit totalement éradiqué. A ce
jour et "dûment" répertorié les cas de plantage
Larray se compte sur les doigts d'une main. Le résultat est néanmoins
lourd : la perte définitive de données. En voici un exemple (décembre
2001 et fév 2002).
Résumé :
- Messages d'erreur de type "Erreur Larray". Sortir immédiatement
de l'aplication
- IMMÉDIATEMENT FAIRE UNE COPIE (par Windows) DU FICHIER "XXX.BAK".
- Résultat : perte totale des LIENS et des SOURCES . L'ouverture
simultanée de plusieurs applications sur une configuration d'ordinateur
"légère" est un environnement facilitant le déclenchement
du Problème "Larray" (voir commentaires de Mike Morice).
La récupération du fichier dans son état avant le message
d'erreur par le fichier .BAK se fait sans problème (voir Que
faire).
Environnement :
PC PII, Ram 128 Mo, DD reste 400 Mo de disponible, Windows millenium / Heredis
Pro 6.1.1.22
Autres applications ouverte : Outlook 2000, Word, IE 5, Access plus une
impression en cours sans être certain que ce soit au même moment.
L'ordinateur était allumé et utilisé depuis 1 h 30.
Fichier : 10 000 individus - 4,3 Mo. 3000 unions, 500 lieux, 1400 noms,
1600 sources et 1100 Liens.
Messages d'erreur :
Identique à ce qui est décrit sue le site à savoir
de type "Heredis Violation d'accès à l'adresse 0091BF49
dans le module 'H6TSTPACKAGE.BPL' Lecture de l'adresse FFFFFFFF' "
avec un bouton OK. Si clic sur OK , suit un message "Larray pDeleting
a locked Array"
Problème :
Identique à ce qui est habituellement constaté, à savoir
: disparition totale des Sources et des Liens (et en option perte des Unions).
La vérification de fichier (testée) est inutile et
même absolument déconseillée car les données
sont déjà perdues (voir Que faire).
Commentaire et Conseil de Mike Morice
Pour mon fichier principal la dimension brute du seul dictionnaire des sources
est de 2,5 Mo et peut donc aisément au minimum doubler une fois mis
en tableau. J'imagine que lors de modifications (changement d'un champ ou
texte, ajout, suppression) le tableau peut provisoirement exister en double
ou triple exemplaire. Qu'intervienne un changement de programme actif avec
besoin de place en RAM et Heredis, en tout ou partie va être viré
sur le fichier C:\Windows\Win386swp (fichier swap), peut-être accompagné
d'autres des programmes simultanément présents. Le fichier
swap peut être considéré comme une extension de la RAM.
Il ne faudrait pas oublier non plus que, outre les programmes lancés
par l'utilisateur, Windows en lance de façon peu ou pas visible une
bardée au démarrage et en cours de vie. Ces programmes aussi
sont candidats à de la place en RAM et sur le fichier swap. Le fichier
swap a une taille dynamiquement très variable et peut grossir très
rapidement en fonction des besoins des programme simultanément actifs.
Pour en venir à ce que je pense, donc, c'est que la combinaison de la taille de RAM (128 Mo dans votre cas) et d'un disque qui tend à être bien rempli (moins de 400 Mo disponible au repos) peut causer des problèmes entre Windows et Heredis. Mais ce n'est pas propre à Heredis car j'arrive à en avoir avec Word en manipulant de très gros tableaux (dépassant largement la taille de mon fichier généalogique) alors que j'ai 256 Mo de RAM et que l'espace disponible sur disque C est d'environ 10 Go.
Avec votre utilisation, je pense que de gonfler la taille de la RAM éviterait l'apparition du phénomène (même si ça n'en corrigerait pas la cause). De toutes façons, et si j'en crois mes lectures, il faudra le faire avant de passer à WindowsXP pour lequel le minimum recommandé par SVM est de 256 Mo.
Précisions techniques :
Le problème semble venir de Hérédis (je ne pense pas que
Windows puisse être incriminé). C'est toujours le même message
d'erreur qui apparait lorsque le problème se déclare. Ce message
mentionne le fichier H6TSTPACKAGE.BPL.
[Ce fichier est en fait ce qu'on appelle avec les outils de programmation Delphi et C++ Builder un package (un paquet en français), c'est-à-dire une collection de composants.Les composants sont des "objets" de base, qui remplissent des fonctions plus ou moins élémentaires dans un logiciel. Le répertoire d'installation d'Hérédis comporte 13 de ces package d'extension .bpl. Ces fichiers sont des packages compilés. (peuvent être considérés comme l'équivalent des DLL d'autres programmes, c'est-à-dire qu'ils pourraient éventuellement être utilisés par d'autres logiciels.]
Il n'est pas certain à 100% que le problème Larray provienne de ce package,mais c'est tout de même fort possible. J'ai constaté que ce package contient les composants de gestion de fichier et des individus, événements, sources, lieux etc
Pour être plus précis, je pense qu'il s'agit principalement d'un
problème de gestion mémoire. Il apparaît nettement un ralentissement
des performances proportionnellement au temps d'utilisation d'Heredis. J'ai
l'impression qu'au fur et à mesure que les données sont lues dans
le fichier source (individus, événements, lieux, sources, ...),
elles sont montées en mémoire sans jamais en ressortir.
Précisément, c'est comme si les données,lorsqu'elles sont
lues, sont stockées en mémoire, cette dernière n'étant
jamais libérée. De plus, le message d'erreur mentionne un dépassement
de capacité de la mémoire adressable (FFFFFFFF), comme si une
nouvelle tentative de lecture ou d'écriture d'une donnée voulait
s'effectuer en dehors de l'espace adressable.Cette technique de stockage en
mémoire est probablement voulue, car cela permet de lire beaucoup plus
rapidement les données que dans le cas d'un relecture sur disque (les
accès mémoire sont beaucoup plus rapides que les accès
disques).
J'estime que ce problème doit pouvoir se résoudre, même si ça peut remettre en cause le principe utilisé actuellement par Hérédis : une vérification régulière de l'espace mémoire disponible peut être effectué, et entrainer la libération de la mémoire avant de poursuivre l'utilisation du logiciel.
A moins bien sûr que tout le fichier soit monté en mémoire au moment du lancement d'Hérédis, ce qui ne me semble pas le cas au vu des messages sur la liste indiquant que l'utilisation est confortable même avec des gros fichiers.
SOLUTION :
- ajouter de la mémoire (256 Mo semble suffisant pour se prémunir),
- fermer Hérédis au moins une fois par jour (laisser le PC allumé
sans fermer Hérédis et s'y remettre le lendemain = courrir à
la catastrophe).
Emmanuel Rogue (avril 2002)
Je suis de plus en plus persuadé que ce genre de problème est
due à la gestion par Windows des allocation / déallocation de
mémoire et que Heredis, comme d'autres programmes, en subit les conséquences.
J'aimerais bien en avoir confirmation (ou infirmation) et si ce problème
est commun aux différentes versions de Windows. Cependant Heredis2001
a au moins l'avantage qu'il signale avoir un problème ce qui n'est pas
nécessairement le cas ailleurs. Même sans Heredis activé,
et même avec 256 Mo de RAM, il m'est arrivé d'avoir des blocages
système ou des manifestations désagréables résolues
par un redémarrage Windows :
- en faisant de la saisie par lot de plusieurs dizaines d'images scannées
quelque soit le logiciel interfacant avec le scanner
- en ouvrant et manipulant dans Photoshop plusieurs images d'environ 6 Mo chaque
- en manipulant simultanément plusieurs tableaux volumineux avec autant
d'occurrences de Word.
(Je suis passé il y a 15 jours à 512 Mo de RAM et ajouté à mon DD de 20 Go un 2° de 80 Go.)
Mike Morice (fév 2002)
H2001 Pro : PII, 64 M, DD occupé à 85%, Windows Me, fichier de 8000 individus et 3 Mo, utilisation simultanée de Outlook 2000, connexion Internet en cours, utilisation intensive depuis plusieurs heures. Apparition du message avec perte totale des Sources et des Liens. Renaud Anzieu
H2001 Pro : Processeur AMD Duron 800, Windows 98, DD 4 Go dont 50% de libre, fichier de 31.000 individus (13.000 unions, 1700 lieux, 0 sources, 1600 liens) 7,8 Mo.
Apparition du "Larray" après une banale tentative de création de liens par le menu. sélection de la seconde personne, bouton "Choisir" puis message "Violation d'accès à l'adresse 0094A6D6 dans le module 'H6TSTPACKAGE.BPL' Lecture de l'adresse FFFFFFFF' " avec un bouton OK. D'autres tentatives donne le même résultat avec un changement d'adresse.
Si on ferme le fichier message "Larray pDeleting a locked Array" et si on fait ok, perte totale des liens. Une vérification du fichier donne un nouveau message d'erreur de type Larray puis blocage, si on relance message etc ... pour finir par un blocage total avec obligation d'un CTRL+ALT+SUP
Non reproductible sur un autre fichier. Pierre Martin (juillet 2001)
Puisque nous sommes dans le domaine de possibles interférences entre programmes, j'ai aussi remarqué sur ma machine des anomalies épisodiques lors de l'utilisation de mon scanner par un programme particulier (pas par les autres).
Configuration : Windows 98-2, Pentium III, 553 MHz chipset i820 AGP bus 133 MHz
256 Mo RAM 133 MHz, Disque dur Fast IDE Ultra DMA/66 de 20 Go occupé au 2/5ème
Moniteur 17" - utilisé en 800x600, Lecteur DVD et Graveur CD
Heredis2000 principalement Heredis2001 épisodiquement. Mike Morice
Ce problème n'est pas forcément uniquement et principalement du à un problème de mémoire. Cela m'est arrivé sur un poste doté de 256 Mo de mémoire vive sans aucune autre application qu'Heredis ouverte ... et même si le fichier dépassait les 50 000 individus, ce n'est surement pas le manque de mémoire qui est en cause. C'est arrivé sur les manipulations suivantes:
- Sur une recherche multicritère, puis suppression d'individu présent dans la liste de ceux sélectionnés.
- Après "suppression de patronyme inutilisé" ... H2000 supprimant en fait un patronyme utilisé.
- Sur ouverture de source une fois, d'autres fois c'est plutôt des violations d'accès que j'ai eu.
Toutefois, depuis le patch 5.2.179 c'est devenu assez rare. Claude Guigon.
Taille mémoire : sous Win NT4 et Win 2000 j'ai pu noter une augmentation conséquente de l'utilisation des ressources mémoire et CPU au fil des saisies et de l'ouverture de fenêtres (dictionnaires ou recherches multicritères) Exemple: Heredis 2000 occupe 9,8 Mo "à vide" ; Heredis 2001 occupe 12,6 Mo "à vide"
J'ouvre un fichier de 52 500 individus (15,4 Mo) et je passe à 26,8 Mo d'occupation mémoire pour les 2 (surprenant vu la taille à vide) Au fil de l'utilisation d'Heredis il m'est arrivé de dépasser 60 Mo d'utilisation mémoire. Il est d'ailleurs nécessaire après quelques dizaines de saisies de fermer Heredis et de le réouvrir tellement le ralentissement devient important et celaest indépendant de la mémoire car c'est le CPU qui voit sa charge croître. Claude Guigon
Je demandais l'ouverture d'un second fichier j'ai eu : erreur 1045. Lorsque j'ai cliqué sur ok j'ai eut le message d'erreur Larray avec perte des liens et sources. Le fichier ouvert comportait 30898 individus, 13429 unions, 1729 lieux 5697 noms, 151 sources, 1700 liens. Pas de photos. Contexte : Version Pro , 128 Mo sdram, 800 Mz. Aucun autre programme n'était ouvert.
Utilisation de Heredis depuis environ 2 heures. Interruption des tâches entraînant la mise en service de l'économiseur d'écran (mais fermeture préalable des fichiers avec enregistrement). Récupération des données grâce aux sauvegardes faites sur cd-rom. Le fichier bak semblait intact.
Remarque : surtout avec les gros fichiers (+ de 25000 individus), si l'on tape trop rapidement, par exemple pendant l'enregistrement automatique du fichier, ou si l'on ferme heredis sans avoir au préalable fermé le(s) fichier(s) ouvert(s), nous obtenons assez souvent le message "violation d'accès etc..." puis immanquablement le message Larray. Pierre Evelyne
| |
Que faire ? |
|
Seule parade certaine : faire immédiatement des sauvegardes (voir les pages Conseils sur ce sujet)
Si vous avez des doutes sur le fait que votre fichier soit vérolé - voir la page Conseil à ce sujet.
Toujours si vous avez des doutes : - Créer un nouveau fichier vide en cliquant sur fichier puis nouveau. Sur la fenêtre Nouvel individu appuyer sur la touche echap (Esc). - Cliquer sur Fichier puis sur Importer Heredis - Sélectionner votre fichier et cliquez sur Ouvrir. - Sauver ce nouveau fichier qui contient toute votre généalogie.
Ayez une configuration confortable. Pour Windows, il n'est pas indispensable d'utiliser sa dernière version. C'est même déconseillé, sauf à être parfaitement au courant de ce que vous faites. Certaines applications sont gourmandes en mémoire et il vaut mieux éviter de les utiliser simultanément sinon redémarrer votre ordinateur régulièrement en cas de soupçon (une fois par heure environ selon l'intensité de l'utilisation). Ex : 64 Mo, W Me, Heredis avec 8000 individus donne des temps de réponses très long. Configuration insuffisante.
Télécharger la dernière version corrective du site de BSD (5.2.179, datée du 7 septembre 2000)
Sortir immédiatement dès la première alerte et avant même de répondre au message d'erreur. Ne pas toucher au dossier hérédis ouvert
Ouvrir l' Explorateur de fichiers copier le fichier .HR5 en cause et surtout faites immédiatement une copie du fichier .BAK ailleurs sur le disque.
Fermer les applications et redémarrer Windows. Redémarrer l'ordinateur.
Reprendre la copie de Backup. Renommez son extension en HR5 (ou HR6 ou
HR7 ou HR8 selon votre version). En principe le fichier de Backup n'est
pas touché par le problème si vous êtes sorti assez
vite. Et ainsi vous pouvez réouvrir votre fichier et retrouver toutes
vos données, à l'exception des toutes dernières modifications
en cours au moment de l'incident
(NB au passage on remarque que le dossier ENORMEMENT fondu par rapport à
son remplaçant)
(attention : ne pas faire une vérification du fichier - ou alors sur une copie - ça risque d'impacter aussi votre fichier de Backup).
Si aucune de ces procédures ne fonctionnent, repartez de votre dernière Sauvegarde.
Ca peut se faire après la correction de BSD ou se tenter avant. Pensez à le faire avec des copies.
Conclusion : cette tentative de synthèse n'excuse en rien le fait que Heredis, par un défaut de conception, permette la perte de données normalement enregistrées, mettant en cause le critère le plus important d'un logiciel, même de généalogie, l'intégrité des données.
| |
Mise à jour H7 |
|
Plusieurs incidents/accidents de ce type sont signalés avec H7.2
Depuis les premiers problèmes signalés avec la version H2000, il y a environ 3 ans, les fichiers des utilisateurs ont grossi. Les contrôles faits par Heredis ont progressé au cours des livraisons de versions. Cependant, il est à remarquer qu'un élément n'a pas toujours évolué en parallèle, c'est la taille mémoire RAM des machines des utilisateurs !
Que les problèmes catastrophiques de fichier soient dus à Windows
ou à l'utilisation qu'en fait Heredis ou internes à Heredis, il
est en l'état actuel toujours nécessaire de :
- adapter la taille de RAM à la taille du (des) fichier ;
- faire des cessions Heredis d'autant moins longues que la taille RAM est relativement
faible ;
- sans parler de copies de sauvegardes ;
- ET contrôler l'état de son/ses fichiers régulièrement.
Avant tout être au moins à jour de patchs pour la version de Heredis utilisée, sinon même passer à Heredis7.2. Heredis2000 reste à mon avis dangereux pour la santé des fichiers. Heredis2001 a marqué un net progrès. Et Heredis7 a à son tour progressé dans la conservation des données enregistrées.
Adapter la taille RAM - il avait été estimé que :
- 16 Mo minimum indiqués par Bsd ne peuvent être pris au sérieux.
- 32 Mo recommandés ne suffiront que pour un fichier de quelques dizaines
d'individus.
- 64 Mo deviendront inconfortables (ralentissements) à partir de 3000
individus
- 128 Mo minimum devrait être conseillés pour une utilisation normale
quand on atteint les milliers d'individus.
On pourrait empiriquement ajouter que :
- 256 Mo sont à conseiller avant que soit abordée la dizaine de
milliers d'individus
- 512 Mo pour les très gros fichiers au delà de 50000 individus
Faire des sessions de durée modérée :
- on peut certainement ouvrir un gros fichier dans peu de mémoire, mais
au fur et à mesure des consultations et modifications dans une même
session l'expérience commune semble montrer que les risques de destruction
augmentent d'autant plus vite que la taille de RAM est relativement faible
- donc fermer et rouvrir son fichier (et Heredis) après une utilisation
d'autant plus courte que le rapport taille de fichier à taille RAM est
grand
- si la RAM est juste, éviter d'avoir plusieurs programmes ouverts simultanément
- ...
Contrôler l'état de ses fichiers en exécutant l'une ou
plusieurs des actions suivantes :
- faire de temps à autre une "Vérification fichier ..."
mais ce n'est pas suffisant
- faire de temps à autre une "Recherche multicritères ..."
de "Individu/Prénom/Contient/ZZZ" ce qui provoque un balayage
complet des noms/prénoms
- faire de temps à autre un export Gedcom de l'ensemble du fichier, et,
si ça passe, lancer Heredis et "Ouvrir" le fichier Gedcom résultant
pour comparer au moins les compteurs avec le fichier de départ, sans
oublier de vérifier le contenu du fichier "xxx.log" (mais le
fichier issu du Gedcom ne peut dans plusieurs cas être un moyen de restauration
parce que plusieurs types d'information se perde, si ce n'était que les
Médias)
- pendant qu'on a un Gedcom complet, rechercher de possibles anomalies à
l'aide de programmes comme GedRadio ou VisuGed ou autres
- ...
A noter que ce qui précède n'est qu'une opinion, pas nécessairement étayée par des preuves irréfutables.
Témoignage - octobre 2004 : "Étant un utilisateur de H7 depuis sa sortie, je ne croyais pas que cette version souffrait toujours du fameux problème de blocage provoqué par "LArray". À la lecture des envois des utilisateurs de Heredis et de la page Web "Larray", je me pensais au-dessus de tout cà, vu que j'ai un système assez costaud (ram:1 Go , cpu: Intel 3MHz, espace libre des DD:~200Go, Win XP pro, etc, etc).
J'ai un fichier relativement pesant d'environ 55 000 individus, j'ai fais beaucoup de manipulations, insertions, rapports, etc, etc sans n'avoir à subir quoi que ce soit de grave ou bloquant, jusqu'à ce que... effectivement, pour la première fois avec H7, j'ai demandé l'export de ce fichier en format Gedcom afin de faire une recherche à l'aide de l'utilitaire GedRadio et de ses dépendances. Or voilà qu'à la fin de l'export, je ne suis plus capable de fermer Heredis 7 et le fameux LArray apparaît avec toute sa suite de fenêtres, avertissements...
Ayant lu la façon de procéder donnée par M Anzieu sur le site Web quelques minutes avant de demander l'export Ged, j'ai arrêté Heredis par ALT+CTRL+DEL « sans répondre aux messages d'avertissement», renommé mon fichier .bak en .HR7 et tout me semble normal maintenant.
Ceci ne résoud peut-être pas le problème de blocage de M. Cagnat, mais démontre l'importance de lire les pages Web associées à la version d'un bon logiciel de généalogie (Heredis), mais qui manque de fiabilité. Robert Descôteaux"
| |
Fichier Vérolé ? |
|
Suite ou avant un problème Larray
Comment savoir si votre fichier est vérolé ? Les deux suggestions
qui suivent sont sans garanties.