Comment 2 for bug 128244

Revision history for this message
Nick Moffitt (nick-moffitt) wrote : Re: [Bug 128244] Re: rdiff-backup --list-increments does not distinguish between error conditions

owsla:
> This is a good point about the two different behaviors and I agree
> that --list-increment-sizes is more sensible.
>
> I think the correct fix is to simply remove the call to
> restore_check_backup_dir() in the ListIncrements(rp) function in
> Main.py. If you remove that line, does the bothersome behavior go
> away?

I don't have handy the directories that I tested it in, but the
functions I listed as reimplementing were so that I could basically
write my own restore_check_backup_dir(). Doing as you describe does in
fact cause the system to print a list of increments in most cases.

The code called by that function eventually reaches check functions in
places like regress.py that themselves call sys.exit(1) or similar.
Ideally these should raise application-specific exceptions that the
high-level code can catch and use to inform the decision-making logic
about the safest course of action.

I understand that this is a large codebase doing very critical
operations on sensitive data, and that such a large architectural change
would not come easily. At the very least I would suggest that these
functions such as regress.check_pids() and Main.checkdest_need_check()
exit with unique exit codes so that shell scripts and other forms of
automation can quickly determine what sort of problem has occurred.

If you like, I can show you the custom versions of these functions that
I wrote to determine what the last *successful* backup time was.

> If that works for you (and I'm pretty sure it will), I will remove
> that line in CVS, which will become rdiff-backup 1.1.13 and subsequent
> releases.

I will test this soon and get back to you.