The error is not surprising at all. Running the standard restic binary over and over again wonât help, it will just crash each time for the same reason.
Unless you build and use a restic version with the changes I asked for in Restic slice bounds out of range? , we wonât get any closer to identifying which file causes the crash. With that information we could try to find out what makes this files so special that it causes the chunker crash.
@killmasta93 Do you think you can get that patch wrapped up in a binary of restic that you can run? If you need help, just let us know. If you want/trust us we can build a binary for you with the patches, as long as you are fine with running something that someone else compiled for you.
Hi there sure thing i would gladly take the help, if you can help me compile i can re run and see if the error still occurs.
well not sure if this helps but i reran running restic manually
It should be sufficient to run the following commands again and use the resulting restic binary.
cd restic/cmd/restic
go build
The screenshot in this reply Restic slice bounds out of range? , looks like youâve already made the necessary source code modifications. So just compile restic again and then use the new binary (maybe delete the restic binary in restic/cmd/restic before just to be sure).
The version could be correct or maybe itâs a dev binary weâve built earlier? restic version calls the binary from your PATH. You might want to tweak the version string in restic to mark the dev version to which a certain binary corresponds.
For that modify cmd/restic/global.go line 42:
From var version = "0.9.6-dev (compiled manually)" to var version = "0.9.6-dev-chunker-max (compiled manually)". Then compile again and check that the output of restic version prints the modified version string.
@killmasta93 Thatâs exactly the error message weâve been searching for. The modified code now returns an error instead of restic crashing. However, it looks like I forgot that the chunker error itself doesnât contain the filename, sorry for that. To also report the filename in the error message, please make another small modification to the already patched restic source code: Replace line 176 in internal/archiver/file_saver.go which currently contains return saveFileResponse{err: err} with return saveFileResponse{err: errors.Wrapf(err, "file %v", f.Name())}. Donât forget to build the binary again afterwards and use that instead.
@MichaelEischer so everything is running good no crashes so far but was checking the logs found this
scan finished in 1991.276s: 1530439 files, 791.383 GiB
error: ReadFull returned negative number of bytes read: 4294967291
error: ReadFull returned negative number of bytes read: 4294967291
error: ReadFull returned negative number of bytes read: 4294967291
Thanks for the reply, well it seems that adding the changes from what @MichaelEischer and from @fd0 seemed to fix the issue havent got any more error or issues 1 month clear
If the ReadFull returned negative number of bytes read error message does not appear in the log, then thereâs also no reason why the normal restic version would crash.
Or the other way round: the changes from @fd0 and me only convert the crash into an error message. If that error message doesnât show up, then the root cause of the crash is no longer triggered.
well thats whats odd havenât seen the ReadFull returned negative number of bytes read
appear again but really happy it got fixed i was struggling for months
As the ReadFull returned negative number of bytes read message no longer seems to be triggered, this means that whatever was causing this either is no longer triggered or has been fixed. And that this âfixâ must be something external to restic.
That also means that restic v0.9.6 should work fine now. So you could try to use the normal release version of restic again and keep an eye on whether the error shows up again.