Inc.get_inc_ext infinite loop

Ben Escoto
Tue, 12 Mar 2002 11:24:07 -0800

Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
Content-Id: <9970.1015961038.0@folly.Stanford.EDU>

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <9970.1015961038.1@folly.Stanford.EDU>

>>>>> "ND" == Nick Duffek <>
>>>>> wrote the following on Tue, 12 Mar 2002 08:43:13 -0500 (EST)

  ND> Yes, rdiff-backup was failing on the remote side (remote source,
  ND> local mirror) for unclear reasons.

  ND> To debug, I ran rdiff-backup on the remote side with stderr
  ND> directed to a file, and the problem went away.  There were quite
  ND> a few messages written to stderr, so maybe stderr was getting
  ND> interleaved with stdout in a way that confused the local
  ND> rdiff-backup.

Enclosed is a patch to 0.5.4 for the infinite-loop bug, but I'd like
to fix the original problem too.  ssh will relay stderr to the local
side, so if you just redirect that to a file you should get the
traceback when it happens, even if you don't enable high logging.

Ben Escoto

------- =_aaaaaaaaaa0
Content-Type: text/patch; charset="us-ascii"
Content-ID: <9970.1015961038.2@folly.Stanford.EDU>
Content-Description: rdiff-backup-nd.patch

--- rdiff-backup.old	Tue Mar 12 11:22:25 2002
+++ rdiff-backup	Tue Mar 12 11:18:24 2002
@@ -3007,12 +3007,13 @@
 			return Time.prevtime
 		silist = cls.get_sis_covering_index(index)
-		silist.reverse()
+		silist.reverse() # now sorted newest to oldest
 		for si in silist:
 			if si.time <= later_than: return best_so_far
 			if si.last_index >= index: return si.time
 			best_so_far = si.time # si is relevant, but maybe not oldest
-		return Time.prevtime # oldest applicable is last complete backup
+		if Time.prevtime <= later_than: return best_so_far
+		else: return Time.prevtime # oldest applicable is last complete backup
 	def get_sis_covering_index(cls, index):
 		"""Return sorted list of SessionInfos which may cover index

------- =_aaaaaaaaaa0--

Content-Type: application/pgp-signature

Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Exmh version 2.5 01/15/2001