Problème backup applicative après suppression archive

Mon serveur YunoHost

Matériel: VPS
Version de YunoHost: 4.0.4
J’ai accès à mon serveur : En SSH
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non, sauf backup régulier avec suppression manuel

Description du problème

En essayant de faire un upgrade applicative (bitwarden dans mon cas), j’ai constaté qu’il y a un problème au niveau du backup pre-upgrade.

Pour les logs détails de l’upgrade :
https://paste.yunohost.org/raw/ehelofowih

Plus spécifiquement en essayant la commande de backup utilisé :

yunohost backup create --apps bitwarden --name bitwarden-pre-upgrade1 --debug

j’obtiens le résultat suivant :

165  DEBUG loading actions map namespace 'yunohost'
188  DEBUG extra parameter classes loaded: ['comment', 'ask', 'password', 'required', 'pattern']
188  DEBUG initializing base actions map parser for cli
190  DEBUG registering new callback action 'yunohost.utils.packages.ynh_packages_version' to ['-v', '--version']
279  DEBUG acquiring lock...
308  DEBUG lock has been acquired
365  DEBUG loading python module yunohost.backup took 0.056s
365  INFO processing action [7306.1]: yunohost.backup.create with args={'description': None, 'apps': ['bitwarden'], 'system': None, 'output_directory': None, 'methods': None, 'no_compress': False, 'name': 'bitwarden-pre-upgrade1'}
366  DEBUG action [7306.1] executed in 0.000s
366  DEBUG lock has been released
Traceback (most recent call last):
 File "/usr/bin/yunohost", line 218, in <module>
   timeout=opts.timeout,
 File "/usr/lib/python2.7/dist-packages/moulinette/__init__.py", line 149, in cli
   moulinette.run(args, output_as=output_as, password=password, timeout=timeout)
 File "/usr/lib/python2.7/dist-packages/moulinette/interfaces/cli.py", line 469, in run
   ret = self.actionsmap.process(args, timeout=timeout)
 File "/usr/lib/python2.7/dist-packages/moulinette/actionsmap.py", line 588, in process
   return func(**arguments)
 File "/usr/lib/moulinette/yunohost/backup.py", line 2127, in backup_create
   if name and name in backup_list()['archives']:
 File "/usr/lib/moulinette/yunohost/backup.py", line 2287, in backup_list
   archives = sorted(glob("%s/*.tar.gz" % ARCHIVES_PATH), key=lambda x: os.path.getctime(x))
 File "/usr/lib/moulinette/yunohost/backup.py", line 2287, in <lambda>
   archives = sorted(glob("%s/*.tar.gz" % ARCHIVES_PATH), key=lambda x: os.path.getctime(x))
 File "/usr/lib/python2.7/genericpath.py", line 72, in getctime
   return os.stat(filename).st_ctime
OSError: [Errno 2] No such file or directory: '/home/yunohost.backup/archives/20200810-042502.tar.gz'

Effectivement /home/yunohost.backup/archives/20200810-042502.tar.gz n’existe plus, je supprime régulièrement les backups faute d’espace, mais pourquoi cette commande a vraiment besoin d’avoir accès à un backup d’archive ? est-ce qu’elle ne peut pas faire un full ?

mais surtout : comment corriger je peux corriger ce problème ?

Merci d’avance !

Est ce que le fichier /home/yunohost.backup/archives/20200810-042502.info.json existe ?
Je ne connais pas le comportement spécifique des sauvegardes (pourquoi ça vérifie les autres avant d’en faire une nouvelle ?) mais à côté de chaque .tar.gz il y a un fichier qui contient des infos dessus, pour ne pas être obligé d’extraire pour voir ce qu’il y a dedans.

Peut-être que tu as laissé le fichier et que ça cause des incohérences ?

1 Like

Effectivement, je n’avais pas pensé à isoler les *.info.json :flushed:
j’ai tout mis sur /tmp et l’upgrade s’est bien déroulé cette fois.

Merci !

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.