New submission from viocal <vio...@tom.com>:
in asyncio when filedata than free memory(hardware) will be memory out Or killed by OS for buf in filedata: transport.write(buf) #to client I try it todo: abort transporting to protect application be killed by OS modified selector_events.py def _write_ready(self): assert self._buffer, 'Data should not be empty' if self._conn_lost: return try: n = self._sock.send(self._buffer) except (BlockingIOError, InterruptedError): pass except Exception as exc: self._loop._remove_writer(self._sock_fd) self._buffer.clear() self._fatal_error(exc, 'Fatal write error on socket transport') if self._empty_waiter is not None: self._empty_waiter.set_exception(exc) return else: try: if n: del self._buffer[:n] self._maybe_resume_protocol() # May append to buffer. if not self._buffer: self._loop._remove_writer(self._sock_fd) if self._empty_waiter is not None: self._empty_waiter.set_result(None) if self._closing: self._call_connection_lost(None) elif self._eof: self._sock.shutdown(socket.SHUT_WR) except Exception as exc: #(MemoryError) self._buffer.clear() self._loop._remove_writer(self._sock_fd) self._fatal_error(exc, 'Fatal write error on Selector SocketTransport write ready') if self._empty_waiter is not None: self._empty_waiter.set_exception(exc) return ---------- components: asyncio messages: 342973 nosy: asvetlov, viocal, yselivanov priority: normal severity: normal status: open title: asyncio transport.write() memory out type: resource usage versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue36981> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com