changeset 31962:e9646ff34d55

stdio: raise StdioError if something goes wrong in ui._write_err The prior code used to ignore certain classes of error, which was not the right thing to do.
author Bryan O'Sullivan <bryano@fb.com>
date Tue, 11 Apr 2017 14:54:12 -0700
parents db823e38a61c
children 1bfb9a63b98e
files mercurial/ui.py
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/ui.py	Tue Apr 11 14:54:12 2017 -0700
+++ b/mercurial/ui.py	Tue Apr 11 14:54:12 2017 -0700
@@ -801,8 +801,7 @@
                 if not getattr(self.ferr, 'closed', False):
                     self.ferr.flush()
         except IOError as inst:
-            if inst.errno not in (errno.EPIPE, errno.EIO, errno.EBADF):
-                raise
+            raise error.StdioError(inst)
 
     def flush(self):
         # opencode timeblockedsection because this is a critical path