Restic: árbol e5457a72: archivo "XX": el tamaño de los metadatos (8770356) y la suma de los tamaños de blobs (8770808) no coinciden

Creado en 22 may. 2018  ·  5Comentarios  ·  Fuente: restic/restic

Hola,

Acabo de actualizar a restic 0.9 y descubrí que restic ahora informa errores para mi repositorio existente (eso estaba bien con 0.8.3 y no se cambió después de la actualización):

error for tree e5457a72: tree e5457a72: file "mail.err": metadata size (1085858) and sum of blob sizes (1085966) do not match tree e5457a72: file "mail.info": metadata size (8770356) and sum of blob sizes (8770808) do not match tree e5457a72: file "mail.log": metadata size (8770356) and sum of blob sizes (8770808) do not match tree e5457a72: file "mail.warn": metadata size (1091226) and sum of blob sizes (1091334) do not match
Probablemente los archivos se cambiaron mientras se ejecutaba la copia de seguridad.

Salida de restic version

restic 0.9.0 compiled with go1.10.2 on linux/amd64

¿Cómo corriste restic exactamente?

restic check

¿Qué backend / servidor / servicio usaste para almacenar el repositorio?

directorio local y servidor de descanso

Comportamiento esperado

Entiendo que restic no puede hacer nada para asegurarse de que la copia de seguridad sea coherente (por ejemplo, que algunos archivos dependientes tengan contenido coincidente).

Pero estoy bastante seguro de que restic debería asegurarse de que su propio repositorio sea coherente en tal caso (los metadatos del repositorio deberían coincidir con los datos del repositorio). Si se agregó algo al archivo después de llamar a stat , pero antes de leer el archivo completo, probablemente restic debería leer solo hasta el tamaño de archivo esperado, o simplemente actualizar los metadatos con la cantidad de bytes que realmente se leyeron.

PD. Probablemente este problema esté solucionado en 0.9 y esto no sucederá con nuevas instantáneas.
Pero, lamentablemente, restic rebuild-index no lo soluciona.

0.9.0 bug

Comentario más útil

Estoy de acuerdo, esto debería ser una advertencia o no mostrarse en absoluto. No hay nada que los usuarios puedan (o necesiten) hacer.

Es un error en el antiguo código del archivador, que escribió un tamaño incorrecto en el repositorio cuando se agregó el archivo mientras restic lo estaba leyendo. El nuevo archivador no hace eso, y todas las demás funciones funcionarán bien (solo usan el tamaño correcto, la suma de los fragmentos del archivo).

Todos 5 comentarios

Estuve a punto de abrir exactamente el mismo número que tú @dionorgua , me

Tengo los mismos errores en mi repositorio (ver más abajo) y comparto la sensación de que estos no deberían ser errores, y que restic debería manejarlo con elegancia. No hay nada que un software de respaldo pueda hacer con los archivos que cambian debajo de él, además de advertir que sucedió durante el proceso de respaldo. Pero más adelante, cuando se ejecuta check , ¿no deberían ser errores, o incluso informarse de nuevo?

Los resultados de la verificación de la versión 0.9.0 se ejecutan en un repositorio en el que la versión 0.8.3 no informa ningún error.

check snapshots, trees and blobs
error for tree c1c7286d:
  tree c1c7286d: file "panacea.dat": metadata size (5975885) and sum of blob sizes (5975910) do not match
error for tree 5908dec5:
  tree 5908dec5: file "panacea.dat": metadata size (5425341) and sum of blob sizes (5425366) do not match
Fatal: repository contains errors

Estoy de acuerdo, esto debería ser una advertencia o no mostrarse en absoluto. No hay nada que los usuarios puedan (o necesiten) hacer.

Es un error en el antiguo código del archivador, que escribió un tamaño incorrecto en el repositorio cuando se agregó el archivo mientras restic lo estaba leyendo. El nuevo archivador no hace eso, y todas las demás funciones funcionarán bien (solo usan el tamaño correcto, la suma de los fragmentos del archivo).

¿Cómo se aborda este problema? Está provocando que mis comprobaciones automáticas semanales fallen en varios de mis repositorios de copia de seguridad.

Aquí está el resultado de mi "verificación restic": lo estoy haciendo a través de la imagen de la ventana acoplable restic.

...
Digest: sha256:9c851e0ba8a9c20ef853ee507af14c4d87c33661c25136262e97506a1cdc7a57
Status: Image is up to date for restic/restic:latest
ID        Date                 Host              Tags        Directory
----------------------------------------------------------------------
8eb0175e  2018-02-28 21:01:38  internal-cluster              /fisheye
a7848682  2018-03-31 09:28:09  internal-cluster              /fisheye
8ad27273  2018-04-30 09:28:09  internal-cluster              /fisheye
97d2e914  2018-05-31 09:28:12  internal-cluster              /fisheye
96ba1cc7  2018-06-30 09:28:13  internal-cluster              /fisheye
23ef9a4b  2018-07-08 09:28:11  internal-cluster              /fisheye
76f8e70a  2018-07-09 09:28:12  internal-cluster              /fisheye
74d46da4  2018-07-10 09:28:14  internal-cluster              /fisheye
a893de2c  2018-07-11 09:28:12  internal-cluster              /fisheye
7dbeb6c0  2018-07-12 09:28:13  internal-cluster              /fisheye
8df2f318  2018-07-13 09:28:11  internal-cluster              /fisheye
e7321bf1  2018-07-14 09:28:13  internal-cluster              /fisheye
----------------------------------------------------------------------
12 snapshots
+ restic check
+ sudo -E docker run --rm -e AWS_ACCESS_KEY_ID=**** -e AWS_SECRET_ACCESS_KEY=**** -e RESTIC_PASSWORD=**** -v /mnt/efs/fisheye:/fisheye:ro -h internal-cluster --user root restic/restic -r s3:s3.amazonaws.com/redacted/restic/fisheye check
using temporary cache in /tmp/restic-check-cache-069761908
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
error for tree d93db471:
  tree d93db471: file "atlassian-fisheye-2018-07-13.log": metadata size (52139444) and sum of blob sizes (52165018) do not match
error for tree 8d1b1f5f:
  tree 8d1b1f5f: file "atlassian-fisheye-2018-04-30.log": metadata size (53418588) and sum of blob sizes (53426968) do not match
Fatal: repository contains errors

¡Esa es una buena pregunta! Todos mis repositorios excepto uno están en error ahora ... pensando en deshabilitar la etapa de verificación por completo, pero, de nuevo, fue y será una buena manera de detectar posibles regresiones futuras. Es difícil decir cuál es la mejor manera de avanzar ...

@ fd0 , este es un error bastante serio, ¿hay alguna solución para hacer que los repositorios vuelvan a ser silenciosos?

Lo siento, desactivé el cheque en # 1887. Puede seleccionar el compromiso si lo desea.

¿Fue útil esta página
0 / 5 - 0 calificaciones