[New-bugs-announce] [issue36981] asyncio transport.write() memory out

viocal report at bugs.python.org
Mon May 20 22:23:49 EDT 2019


New submission from viocal <viocal at 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 <report at bugs.python.org>
<https://bugs.python.org/issue36981>
_______________________________________


More information about the New-bugs-announce mailing list