changeset 37654:8cea0d57bf37

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
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 12 Apr 2018 13:08:33 -0700
parents b2fa1591fb44
children b9502b5f2066
files mercurial/httppeer.py
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)