Prune crash "hash does not match"

When doing a prune - I some strange behaviour before a crash. Perhaps some corruption in repo and wondering what steps I should do to fix (it is about 500Gb total and on my connection takes about 3-4 days to fully upload so prefer a fix rather than a reupload if possible)

Warnings/Errors start to appear when collecting data files:

find data files in index and calculate used size...
collect data files for deletion and repacking...
data file 66282794: calculated size 4198219 does not match real size 1212416 difference: -2985803 => treated as mixed data file
data file 6a00670e: calculated size 4247911 does not match real size 851968 difference: -3395943 => treated as mixed data file
data file ab92ce7a: calculated size 4799164 does not match real size 4521984 difference: -277180 => treated as mixed data file

The prune proceeds but then when at repacking step get the following (fatal) error.

repacking data files...
[0:57] 14.29%  2 / 14 data files repacked

hash does not match id: want ab92ce7a912d2d42557b8ce27445d26d6814ea06710299a68833f1fdf5a9e740, got 6027d91845ffd51b315af175bf9f1d53478e121f4b768e2f1240fc56fefc16e0
github.com/restic/restic/internal/repository.Repack
        github.com/restic/restic/internal/repository/repack.go:34
main.Prune
        github.com/restic/restic/cmd/restic/cmd_prune.go:493
main.runPruneWithRepo
        github.com/restic/restic/cmd/restic/cmd_prune.go:160
main.runForget
        github.com/restic/restic/cmd/restic/cmd_forget.go:218
main.glob..func10
        github.com/restic/restic/cmd/restic/cmd_forget.go:28
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v0.0.3/command.go:762
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v0.0.3/command.go:852
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v0.0.3/command.go:800
main.main
        github.com/restic/restic/cmd/restic/main.go:86
runtime.main
        runtime/proc.go:203
runtime.goexit
        runtime/asm_amd64.s:1373

running a restic check I have following errors:

load indexes
Load(<index/18d2b4ff7a>, 0, 0) returned error, retrying after 720.254544ms: <index/18d2b4ff7a> does not exist
Load(<index/21c64c71de>, 0, 0) returned error, retrying after 582.280027ms: <index/21c64c71de> does not exist
Load(<index/22e2f7263b>, 0, 0) returned error, retrying after 468.857094ms: <index/22e2f7263b> does not exist

(since error doesn’t reappear; I suppose this is just temporary file access error?)

The check does finish reporting no errors were found and not sure how else to proceed

Are you running a beta build or some test version of the new prune? This error message should not be printed using 0.12.0 - there were some changes about the treatment of non-matching file size.

Can you please try with 0.12.0 - either it should simply delete this pack file (if it is not needed, what I guess is the case as check did not report an error) or abort with an error before attempting to repack.

1 Like

was using the preview version of restic with the new (fast) prune function before it was official.

Updated to 0.12 and after one rebuild-index and a couple of further backups to fix up the data files, finally the prune worked without any errors/warnings

Thanks!

1 Like