# HG changeset patch # User Mads Kiilerich # Date 2010-06-16 20:54:58 # Node ID a1e575b48563c49cb5bdf36e86bee7fce08e927d # Parent 0fa4474bdc2ff7738460a4905ef6ad317bc4d03d http push: break infinite recursion on failure with Python 2.6.5 (issue2179) Python 2.6.5 will keep resetting the retry count on redirects, for example when the server returns 401 on failing auth (like google code currently does). We stop the endless recursion by not resetting the count. http://bugs.python.org/issue3819 introduced the regression with Python 2.6.5. http://bugs.python.org/issue8797 discusses a fix which might make it to 2.6.6 and 2.7.0. diff --git a/mercurial/url.py b/mercurial/url.py --- a/mercurial/url.py +++ b/mercurial/url.py @@ -556,6 +556,13 @@ class httpdigestauthhandler(urllib2.HTTP return raise + # Python 2.6.5 will keep resetting the retry count on redirects, for + # example when the server returns 401 on failing auth (like google code + # currently does). We stop the endless recursion by not resetting the + # count. + def reset_retry_count(self): + pass + def getauthinfo(path): scheme, netloc, urlpath, query, frag = urlparse.urlsplit(path) if not urlpath: