Comments
Patch
@@ -147,7 +147,10 @@ class hgclient(object):
def _readchannel(self):
data = self.server.stdout.read(hgclient.outputfmtsize)
if not data:
- self.close()
+ ret, serr = self._close()
+ if ret != 0:
+ raise error.ServerError('server exited with status %d: %s'
+ % (ret, serr.strip()))
raise error.ResponseError('no response received from server')
channel, length = struct.unpack(hgclient.outputfmt, data)
if channel in b('IL'):
@@ -271,6 +274,10 @@ class hgclient(object):
self.close()
raise
except error.ServerError:
+ if self.server is None:
+ # server is already closed, hopefully the ServerError
+ # we got has enough information.
+ raise
ret, serr = self._close()
raise error.ServerError('server exited with status %d: %s'
% (ret, serr.strip()))