httppeer: handle error response from client reactor
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 12 Apr 2018 13:08:33 -0700
changeset 37654 8cea0d57bf37
parent 37653 b2fa1591fb44
child 37655 b9502b5f2066
httppeer: handle error response from client reactor With this in place, we're now seeing useful errors when running tests with the new wire protocol enabled! Differential Revision: https://phab.mercurial-scm.org/D3332
mercurial/httppeer.py
--- a/mercurial/httppeer.py	Fri Apr 13 12:31:56 2018 -0700
+++ b/mercurial/httppeer.py	Thu Apr 12 13:08:33 2018 -0700
@@ -763,6 +763,14 @@
                     f.set_result(result)
                     del results[request.requestid]
 
+            elif action == 'error':
+                e = error.RepoError(meta['message'])
+
+                if f:
+                    f.set_exception(e)
+                else:
+                    raise e
+
             else:
                 e = error.ProgrammingError('unhandled action: %s' % action)