still some problems witih 0.5.3

Alberto Accomazzi Alberto Accomazzi <aaccomazzi@cfa.harvard.edu>
Tue, 05 Mar 2002 17:12:15 -0500


Ben,

unfortunately the patch seems to be a step backwards:

# rdiff-backup /proj/ads/soft /proj/ads-md3/backups/proj.test/ads/soft
Last backup dated Tue Mar  5 10:32:56 2002 was aborted, but we aren't resuming it.
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
Waiting for process to close
^CException  raised of class exceptions.KeyboardInterrupt
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2667, in execute
    self.final_thunk()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2704, in final
    for ra in ralist_copy: ra.final_thunk()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2704, in final
    for ra in ralist_copy: ra.final_thunk()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2728, in final
    tempfiles[i].rename(final_name)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2869, in rename
    RPathStatic.rename(self, rp_dest)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2087, in rename
    rp_source.conn.os.rename(rp_source.path, rp_dest.path)

Exception  raised of class exceptions.KeyboardInterrupt
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4409, in patch_and_finalize
    try: dsrp = cls.check_skip_error(error_checked)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4455, in check_skip_error
    try: return thunk()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4403, in error_checked
    RORPIter.patchonce_action(None, dsrp, diff_rorp).execute()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2671, in execute
    raise exp

Traceback (most recent call last):
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 5079, in ?
    Globals.Main.Main()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4825, in Main
    self.take_action(rps)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4801, in take_action
    elif self.action == "backup": self.Backup(rps[0], rps[1])
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4858, in Backup
    HighLevel.Mirror(rpin, rpout, 1, RSI)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4230, in Mirror
    DestS.patch_and_finalize(dest_rpath, diffiter, checkpoint)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4414, in patch_and_finalize
    except: cls.handle_last_error(last_dsrp, finalizer)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4409, in patch_and_finalize
    try: dsrp = cls.check_skip_error(error_checked)
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4455, in check_skip_error
    try: return thunk()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 4403, in error_checked
    RORPIter.patchonce_action(None, dsrp, diff_rorp).execute()
  File "/proj/ads/soft/utils/bin/rdiff-backup", line 2671, in execute
    raise exp
KeyboardInterrupt




In message <200203052018.g25KI8E08163@folly.Stanford.EDU>, Ben Escoto writes:

> ------- =_aaaaaaaaaa0
> Content-Type: text/plain; charset="us-ascii"
> Content-ID: <8159.1015359473.1@folly.Stanford.EDU>
> 
> >>>>> "AA" == Alberto Accomazzi <aaccomazzi@cfa.harvard.edu>
> >>>>> wrote the following on Tue, 05 Mar 2002 10:42:36 -0500
> 
>   AA> I downloaded version 0.5.3 and was successfull in running a
>   AA> backup as root on a brand-new directory.  However, when I tried
>   AA> continuing an interrupted backup on a similar directory I got an
>   AA> error message (reported below).  This is not a show-stopper for
>   AA> me at the moment since I am able to do backups regularly, but I
>   AA> thought I'd let you know in case you want to track this down.
> 
> Ok, I think I may know what the problem is:  there may be some time
> after rdiff's stdout gets closed and before the exit value becomes
> available, and rdiff-backup can get unlucky.  So try the attached
> patch (pretty hacky).
> 
>   AA> Oh, and another (minor) suggestion: you should really implement
>   AA> a --help option that spits out the usage syntax for the command,
  AA> in line with all other GNU programs.
> 
> I don't have a major objection to this, but it seems like some
> duplication of effort.  If you type in rdiff-backup --help now it
> tells you to look at the man page, which has all the information.
> Syntax with the --help switch would require the information to be
> written and maintained in two separate places.  Why not just read the
> man page?
> 
> 
> --
> Ben Escoto
> 
> 
> ------- =_aaaaaaaaaa0
> Content-Type: text/patch; charset="us-ascii"
> Content-ID: <8159.1015359473.2@folly.Stanford.EDU>
> Content-Description: rdiff-backup-aa2.patch
> 
> --- rdiff-backup.old	Tue Mar  5 11:58:47 2002
> +++ rdiff-backup	Tue Mar  5 12:08:37 2002
> @@ -1458,6 +1458,13 @@
>  				Log("Failure probably because %s couldn't be fo
und in PATH."
>  					% self.cmdlist[0], 2)
>  				assert 0, "rdiff not found"
> +			if exitval == -1:
> +				# There may a race condition where a process cl
oses
> +				# but doesn't provide its exitval fast enough.
> +				Log("Waiting for process to close", 2)
> +				time.sleep(0.2)
> +				exitval = self.p3obj.poll()
> +				if exitval == 0: return closeval
>  			raise RdiffException("%s exited with value %d" %
>  								 (self.cmdlist,
 exitval))
>  		return closeval
> @@ -4288,7 +4295,8 @@
>  					if dsrp: finalizer(dsrp)
>  				except (IOError, OSError, RdiffException):
>  					Log.exception()
> -					Log("Error processing %s, skipping" % d
est_sig.index, 2)
> +					Log("Error processing %s, skipping" %
> +						str(dest_sig.index), 2)
>  			finalizer.getresult()
>  		return diffs()
>  
> 
> ------- =_aaaaaaaaaa0--



****************************************************************************
Alberto Accomazzi                          mailto:aaccomazzi@cfa.harvard.edu
NASA Astrophysics Data System                      http://adsabs.harvard.edu
Harvard-Smithsonian Center for Astrophysics        http://cfawww.harvard.edu
60 Garden Street, MS 83, Cambridge, MA 02138 USA   
****************************************************************************