diff -r 8c13f7b0ace6 -r 13dad5cb4b99 hgext/remotefilelog/basestore.py --- a/hgext/remotefilelog/basestore.py Wed Jan 30 19:43:43 2019 -0500 +++ b/hgext/remotefilelog/basestore.py Thu Jan 31 11:12:59 2019 -0500 @@ -410,16 +410,18 @@ def wrapped(self, *args, **kwargs): retrylog = self.retrylog or noop funcname = fn.__name__ - for i in pycompat.xrange(self.numattempts): + i = 0 + while i < self.numattempts: if i > 0: retrylog('re-attempting (n=%d) %s\n' % (i, funcname)) self.markforrefresh() + i += 1 try: return fn(self, *args, **kwargs) except KeyError: - pass - # retries exhausted - retrylog('retries exhausted in %s, raising KeyError\n' % - pycompat.sysbytes(funcname)) - raise + if i == self.numattempts: + # retries exhausted + retrylog('retries exhausted in %s, raising KeyError\n' % + pycompat.sysbytes(funcname)) + raise return wrapped