[Pas un bug] plus d'espace disque

Démarré par mitiye, 01 Mars 2012 à 07:56

0 Membres et 1 Invité sur ce sujet

01 Mars 2012 à 07:56 Dernière édition: 01 Mars 2012 à 08:15 par mitiye
Bonjour,

J'imagine, par manque d'espace disque, au moment de faire une sauvegarde, Zsdx ferme brutalement sans aucune mention d'alerte. Comme je lance mes applis à partir d'un terminal, j'ai pu lire ceci :

Citationterminate called after throwing an instance of 'std::logic_error'
 what():  Cannot write file 'save3.dat': No space left on device
/usr/bin/zsdx: line 2:  8649 Abandon                 solarus /usr/share/solarus/zsdx

Pour info, je fonctionne sur Ubuntu 10.04. Zelda DX version 1.4.1. Situé entre le donjon 7 et le donjon 8 que je ne trouve pas.  ;)

Cordialement,

Mitiye.

Et alors? Tu as de la place sur ton disque?

01 Mars 2012 à 10:13 #2 Dernière édition: 01 Mars 2012 à 10:17 par mitiye
Non, je n'a vais plus de place sur mon disque.

Maintenant j'en ai de nouveau, seulement Zelda ne se lance plus avec comme message :

Citationterminate called after throwing an instance of 'std::logic_error'
 what():  Cannot read savegame file 'save3.dat': invalid file size
/usr/bin/zsdx: line 2:  9881 Abandon                 solarus /usr/share/solarus/zsdx

Je me doute qu'il me suffit de supprimer le fichier défectueux pour pouvoir rejouer, mais alors j'aurai perdu la partie en cours (le fichier fait 0 Ko) alors que je venais de finir le donjon 7.

Mitiye.

Donc, le bug, c'est que lorsque le disque dur est plein, le jeu réécrit un fichier de sauvegarde corrompu de 0 octet au lieu de vérifier d'abord s'il y a encore de l'espace.

Le fichier de sauvegarde fait une taille constante de 16384 octets. Ton disque était donc vraiment plein pour que la sauvegarde échoue...
Si le fichier fait 0 Ko, c'est que ta sauvegarde n'existe plus, et ça c'est bizarre car la taille étant constante, si le fichier existait avant il devrait pouvoir être modifié même si le disque est plein.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Ça dépend de comment l'implémentation de la std lib de l'OS en question écrit sur le disque. C'est garanti que pour une modification de fichier existant, rien ne sera écrit en dehors du fichier en question ?

[spoiler]
Et parce que c'est Chris, je vais pinailler sur son français :
CitationTon disque était donc vraiment plein
Si c'est plein, c'est que c'est rempli à 100%. Quelle est la différence entre "vraiment rempli à 100%" et "un peu rempli à 100%" ? :ninja:
[/spoiler]

Parce que plein sauf 16 Ko de libre, ça s'arrondit à 100% pour moi :mrgreen:
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Effectivement, le disque était complètement plein.
C'était à cause d'une fausse manip lancée en tâche de fond qui a vraiment tout rempli.

Bonne soirée.

Mitiye.