-
-
Notifications
You must be signed in to change notification settings - Fork 735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
borg extract: check behaviour on integrity (or other) errors #840
Comments
I'm moving this to the 1.2 milestone, since this is not possible atm for IntegrityErrors on the Repository layer for remote repos. I.e. it would need an RPC change and would not work with old servers. I'll leave the code there (feature/extract-logfail) so when 1.2 comes up we can use that as a basis.
Abort on first error |
hmm, thinking about what's worse: |
Hmm, what do you mean by "is not possible atm"? The repository code already can raise IntegrityError at a lot of place and borg.remote re-raises them if that error type comes from the remote. |
@textshell see above - how is that after your rpc changes? |
hmm, not sure about this. The new RPC should not have changed much. But i don‘t see why this is not possible with the 1.0.x or 1.1.0 rpc protocol looking at it briefly. @enkore |
I'm not a 100 % sure, but I think maybe it was because of the iterators breaking when they raise IntegrityError, and I didn't realize that this was intentional / that they would need to be restarted manually. |
Just to be clear about what happens for a repo error:
|
As a general note: we have 2 ways to deal with that:
|
2.) -> should probably be more like check --repair would do it, ie. replace the faulty chunks with runs of zeroes? |
I don’t like the idea of just going on and printing a warning. That is far to easy to miss. But as on option (or interactive prompt?) i think this would be useful. |
The default in other places, borg-mount, is to fail by default as well. |
@enkore not sure about whether we should try to fix-on-the-fly within extract and fuse and ... This might duplicate / complicate code quite a bit and maybe would never be as good as borg check --repair. |
Just put this into 2.0 milestone. IF we need to change the rpc interface, we should do it with borg2. I'll have a look at it now, not so sure any more we should change anything. Having only borg check (--repair) deal with corruption is likely easier (and maybe also better). |
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
…orgbackup#840 Forward port of a change implemented by @enkore back in 2016: enkore@09b21b1
Assuming there is some issue in the repo storage, like partial corruption, unreadable disk sectors or so - how does borg handle them?
It might be the case that borg extract currently aborts when it hits such a file. More helpful would be to log an error for that file and try to continue. At the end, exit with warning status (1). This is similar to what borg does when creating archives and it encounters problems for single files.
The text was updated successfully, but these errors were encountered: