Skip to content

Corrupted blob #4677

@madroach

Description

@madroach

Output of restic version

% restic version
restic 0.16.3 compiled with go1.21.6 on openbsd/amd64

What backend/service did you use to store the repository?

I reproduced this three times on a repository on a directly connected external hard drive and twice on a repository accessed via the rest interface. Always on fresh repositories.

Problem description / Steps to reproduce

% set |grep RESTIC
RESTIC_COMPRESSION=max
RESTIC_PASSWORD_FILE=/home/madroach/.restic/restic-pass
RESTIC_PROGRESS_FPS=2
RESTIC_REPOSITORY=/mnt/test1
% rm -rf /mnt/test1/*
zsh: sure you want to delete all 6 files in /mnt/test1 [yn]? y
% restic init && restic backup --iexclude-file ~/.restic/excludes --exclude-caches /home && restic check --read-data
created restic repository b00a1b13ab at /mnt/test1

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
repository b00a1b13 opened (version 2, compression level max)
created new cache in /home/madroach/.cache/restic
no parent snapshot found, will read all files


Files:       461179 new,     0 changed,     0 unmodified
Dirs:        111648 new,     0 changed,     0 unmodified
Added to the repository: 42.199 GiB (25.732 GiB stored)

processed 461179 files, 45.801 GiB in 15:57
snapshot 966f0404 saved
using temporary cache in /tmp/restic-check-cache-2221875346
repository b00a1b13 opened (version 2, compression level max)
created new cache in /tmp/restic-check-cache-2221875346
create exclusive lock for repository
load indexes
[0:01] 100.00%  3 / 3 index files loaded
check all packs
check snapshots, trees and blobs
[0:02] 100.00%  1 / 1 snapshots
read all data
pack d5efb8999a798c6a35b54ce242c47ae0f049b47fb14b489b65936e0fb411ca9d contains 1 errors: [blob dbcbc33f1df3ed6295f40527080cb035d12539b6b1c35d9f8be22388ba53529c: read blob <data/dbcbc33f> from d5efb899: wrong data returned, hash is 7b440dd5b70dd997e35b9094a4a3eca110f415d96bb8df4b0035111801981077]
[11:09] 100.00%  1582 / 1582 packs

The repository contains pack files with damaged blobs. These blobs must be removed to repair the repository. This can be done using the following commands:

RESTIC_FEATURES=repair-packs-v1 restic repair packs d5efb8999a798c6a35b54ce242c47ae0f049b47fb14b489b65936e0fb411ca9d
restic repair snapshots --forget

Corrupted blobs are either caused by hardware problems or bugs in restic. Please open an issue at https://github.com/restic/restic/issues/new/choose for further troubleshooting!
Fatal: repository contains errors

Do you have any idea what may have caused this?

I suspect a software bug since (on 5 tries) always exactly one damaged blob is found.

No messages from the system about bad disk sectors.

This is on an AMD Ryzen 5600 6 core/12 threads CPU, 16GB ram, 512GB nvme running OpenBSD 7.4.

To search for memory problems I ran 12 instances of memtester on a total of 3GB of memory 4 times, heating up the CPU up to 60⁰C. I ran memtest86+ thoroughly half a year ago on this same machine. No errors found.

Did restic help you today? Did it make you happy in any way?

I enjoyed reading the (good) documentation. I'm pretty happy to have found a well designed backup solution.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions