asyncio: _fatal_error() of _UnixWritePipeTransport and _ProactorBasePipeTransport...
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 29 Jan 2014 21:12:03 +0000 (13:12 -0800)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 29 Jan 2014 21:12:03 +0000 (13:12 -0800)
(Same behaviour as _SelectorTransport._fatal_error().)

Lib/asyncio/proactor_events.py
Lib/asyncio/unix_events.py

index 3b44f2483585dc70a76cd6ead27b0cfecf1ff7b0..d2553eb78e9fc7f7840f040908d8b2a6ea803abf 100644 (file)
@@ -54,7 +54,8 @@ class _ProactorBasePipeTransport(transports.BaseTransport):
             self._read_fut.cancel()
 
     def _fatal_error(self, exc):
-        logger.exception('Fatal error for %s', self)
+        if not isinstance(exc, (BrokenPipeError, ConnectionResetError)):
+            logger.exception('Fatal error for %s', self)
         self._force_close(exc)
 
     def _force_close(self, exc):
index 219c88a0ff9c3799765905ac985444dd2926d0e3..a1aff3f146a775bfcca9f1ed6ff290270bf925cb 100644 (file)
@@ -363,7 +363,8 @@ class _UnixWritePipeTransport(transports.WriteTransport):
 
     def _fatal_error(self, exc):
         # should be called by exception handler only
-        logger.exception('Fatal error for %s', self)
+        if not isinstance(exc, (BrokenPipeError, ConnectionResetError)):
+            logger.exception('Fatal error for %s', self)
         self._close(exc)
 
     def _close(self, exc=None):