rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[rdiff-backup-users] 1.1.11 with patches on Cygwin: Inappropriate failur


From: Ralph Lehmann
Subject: [rdiff-backup-users] 1.1.11 with patches on Cygwin: Inappropriate failure handling on recovery mode, if a given backup does not exist
Date: Sat, 07 Jul 2007 12:09:11 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.12) Gecko/20070509 Thunderbird/1.5.0.12 Mnenhy/0.7.5.0

Hi,

I've patched 1.1.11 with manage.py and restore.py from yesterday
(2007-07-06) and recovery works now. :-)

But if a given backup does not exist, rdiff-backup prints out:
--------------------------------
$ rdiff-backup -r 5B --force /test/bar/ /test/recover/
Exception 'basis_file must be a (true) file' raised of class '<type
'exceptions.TypeError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")

Exception 'basis_file must be a (true) file' raised of class '<type
'exceptions.TypeError'>':
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
299, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
319, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
285, in take_action
    elif action == "restore-as-of": Restore(rps[0], rps[1], 1)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
497, in Restore
    inc_rpath, dest_rp, time)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
37, in Restore
    TargetS.patch(target, diff_iter)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
290, in patch
    for diff in rorpiter.FillInIter(diff_iter, target):
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line
177, in FillInIter
    for rp in rpiter:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
246, in get_diffs_from_collated
    diff = cls.get_diff(mir_rorp, target_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
259, in get_diff
    file_fp = cls.rf_cache.get_fp(expanded_index, mir_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
353, in get_fp
    return rf.get_restore_fp()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
487, in get_restore_fp
    return robust.check_common_error(error_handler, get_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 23, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
299, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
319, in Main
    take_action(rps)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
285, in take_action
    elif action == "restore-as-of": Restore(rps[0], rps[1], 1)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Main.py", line
497, in Restore
    inc_rpath, dest_rp, time)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
37, in Restore
    TargetS.patch(target, diff_iter)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
290, in patch
    for diff in rorpiter.FillInIter(diff_iter, target):
  File "/usr/lib/python2.5/site-packages/rdiff_backup/rorpiter.py", line
177, in FillInIter
    for rp in rpiter:
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
246, in get_diffs_from_collated
    diff = cls.get_diff(mir_rorp, target_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
259, in get_diff
    file_fp = cls.rf_cache.get_fp(expanded_index, mir_rorp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
353, in get_fp
    return rf.get_restore_fp()
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
487, in get_restore_fp
    return robust.check_common_error(error_handler, get_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/robust.py", line
32, in check_common_error
    try: return function(*args)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/restore.py", line
467, in get_fp
    Rdiff.write_patched_fp(current_fp, delta_fp, new_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/Rdiff.py", line
73, in write_patched_fp
    rpath.copyfileobj(librsync.PatchedFile(basis_fp, delta_fp), out_fp)
  File "/usr/lib/python2.5/site-packages/rdiff_backup/librsync.py", line
156, in __init__
    raise TypeError("basis_file must be a (true) file")
TypeError: basis_file must be a (true) file
-------------------------------------------
IMO it would be better to print:
"The backup you've tried to recover does not exist."

ciao Ralph




reply via email to

[Prev in Thread] Current Thread [Next in Thread]