[grisbi-bugs] [Grisbi 0002303]: Crash lors de manipulations d'une nouvelle entrée
Grisbi Bug Tracker
bugtracker at grisbi.org
Sam 8 Juin 14:59:19 CEST 2024
The following issue has been RESOLVED.
======================================================================
https://www.grisbi.org/bugsreports/view.php?id=2303
======================================================================
Reported By: Alubis
Assigned To: LudovicRousseau
======================================================================
Project: Grisbi
Issue ID: 2303
Category: Main
Reproducibility: always
Severity: major
Priority: low
Status: resolved
OS: Autre(Other)
Unstable Impact: Yes
Version OS:
Version GTK:
Resolution: fixed
Fixed in Version: development (git)
======================================================================
Date Submitted: 2024-06-06 09:18 CEST
Last Modified: 2024-06-08 14:59 CEST
======================================================================
Summary: Crash lors de manipulations d'une nouvelle entrée
Description:
Grisbi plante lorsqu'on efface le champ Date d'une nouvelle entrée et qu'on
annule l'entrée, ceci plusieurs fois de suite.
Steps to Reproduce:
1 Ouvrir Grisbi
2 Créer un nouveau compte par défaut
3 Ouvrir le compte pour saisir une nouvelle entrée
4 Double-cliquer sur une ligne vide pour afficher le formulaire de saisie
5 Le champ Date étant préselectionné, appuyer sur la touche SUPPR pour
effacer son contenu
6 Appuyer sur ECHAP pour annuler la saisie
7 Répéter les opérations 4 à 6 jusqu'au crash de Grisbi (3~4 essais). Noter
la valeur du champ Date à chaque tentative (caractères aléatoires)
Additional Information:
Le champ Date retient peut-être les valeurs saisies précédemment. Lors la
dernière saisie (même non validée) étant vide, il est possible que cela pose
problème.
======================================================================
----------------------------------------------------------------------
(0007009) Alubis (reporter) - 2024-06-06 09:20
https://www.grisbi.org/bugsreports/view.php?id=2303#c7009
----------------------------------------------------------------------
Info oubliée : testée sur version 3.1.0.r109.g02e5ae375-1
----------------------------------------------------------------------
(0007010) LudovicRousseau (administrator) - 2024-06-07 17:15
https://www.grisbi.org/bugsreports/view.php?id=2303#c7010
----------------------------------------------------------------------
J'arrive à reproduire le problème sur macOS mais c'est pas facile.
Effectivement le champ Date se retrouve corrompu à un moment. Surement à cause
d'un débordement de mémoire ailleurs dans le code.
Par contre je n'ai pas de crash. Mais il y a quand même un bug caché quelque
part.
SI vous savez utiliser gdb ce serait bien de faire tourner grisbi dans gdb en
utilsant electric-fence.
----------------------------------------------------------------------
(0007011) Alubis (reporter) - 2024-06-07 20:06
https://www.grisbi.org/bugsreports/view.php?id=2303#c7011
----------------------------------------------------------------------
J'ai fait un :
`gdb src/grisbi | tee /tmp/gdb-0002303.txt`
puis dans gdb :
`run`
J'ai reproduis le problème, puis :
`thread apply all backtrace full`
Voir fichier attaché. Si besoin je peux lancer valgrind, par contre pour
electric-fence, ça me semble plus compliqué.
----------------------------------------------------------------------
(0007012) Alubis (reporter) - 2024-06-07 21:18
https://www.grisbi.org/bugsreports/view.php?id=2303#c7012
----------------------------------------------------------------------
Précision lors de ce test (fait plusieurs fois) : pas de crash mais interface
figée à chaque fois.
----------------------------------------------------------------------
(0007013) LudovicRousseau (administrator) - 2024-06-07 21:54
https://www.grisbi.org/bugsreports/view.php?id=2303#c7013
----------------------------------------------------------------------
grisbi a planté dans un malloc().
C'est une indication que la mémoire est corrompue. Mais ça ne dit pas quand
elle a été corrompue.
C'est pour ça que Electric Fence est pratique pour faire planté au moment de
la corruption mémoire
https://fr.wikipedia.org/wiki/Electric_Fence
----------------------------------------------------------------------
(0007014) LudovicRousseau (administrator) - 2024-06-08 14:58
https://www.grisbi.org/bugsreports/view.php?id=2303#c7014
----------------------------------------------------------------------
j'ai trouvé.
Pour reproduire le problème il faut faire une opération en plus que décrite
plus haut :
1 Double-cliquer sur une ligne vide pour afficher le formulaire de saisie
2 Le champ Date étant préselectionné, appuyer sur la touche SUPPR pour
effacer son contenu
3 appuyer sur TAB pour changer de champ
4 Appuyer sur ECHAP pour annuler la saisie
L'étape 3 est importante pour valider le champ date vide.
C'est corrigé dans
https://github.com/grisbi/grisbi/commit/3d526f292ca48a15062cfd4a419c5704805a18d2
Merci pour le rapport de bug
Issue History
Date Modified Username Field Change
======================================================================
2024-06-06 09:18 Alubis New Issue
2024-06-06 09:18 Alubis File Added: TEST-Mes comptes.gsb
2024-06-06 09:18 Alubis File Added: TEST-Mes comptes-log.txt
2024-06-06 09:18 Alubis File Added: TEST-Mes comptes-trace.txt
2024-06-06 09:20 Alubis Note Added: 0007009
2024-06-07 17:15 LudovicRousseauNote Added: 0007010
2024-06-07 20:06 Alubis Note Added: 0007011
2024-06-07 20:06 Alubis File Added: gdb-0002303.txt
2024-06-07 21:18 Alubis Note Added: 0007012
2024-06-07 21:54 LudovicRousseauNote Added: 0007013
2024-06-08 14:58 LudovicRousseauNote Added: 0007014
2024-06-08 14:59 LudovicRousseauAssigned To => LudovicRousseau
2024-06-08 14:59 LudovicRousseauStatus new => resolved
2024-06-08 14:59 LudovicRousseauResolution open => fixed
2024-06-08 14:59 LudovicRousseauFixed in Version => development (git)
======================================================================
Plus d'informations sur la liste de diffusion bugsreports