[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