Patchwork D2448: httppeer: explicitly catch urlerr.httperror and re-raise

login
register
mail settings
Submitter phabricator
Date Feb. 26, 2018, 1:12 p.m.
Message ID <749aa73373f4a342967d2cff6893f033@localhost.localdomain>
Download mbox | patch
Permalink /patch/28396/
State Not Applicable
Headers show

Comments

phabricator - Feb. 26, 2018, 1:12 p.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGefebfa9b4cab: httppeer: explicitly catch urlerr.httperror and re-raise (authored by durin42, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2448?vs=6103&id=6120

REVISION DETAIL
  https://phab.mercurial-scm.org/D2448

AFFECTED FILES
  mercurial/httppeer.py

CHANGE DETAILS




To: durin42, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/httppeer.py b/mercurial/httppeer.py
--- a/mercurial/httppeer.py
+++ b/mercurial/httppeer.py
@@ -439,6 +439,11 @@ 
             if len(vals) < 2:
                 raise error.ResponseError(_("unexpected response:"), r)
             return vals
+        except urlerr.httperror:
+            # Catch and re-raise these so we don't try and treat them
+            # like generic socket errors. They lack any values in
+            # .args on Python 3 which breaks our socket.error block.
+            raise
         except socket.error as err:
             if err.args[0] in (errno.ECONNRESET, errno.EPIPE):
                 raise error.Abort(_('push failed: %s') % err.args[1])