This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author viocal
Recipients asvetlov, viocal, yselivanov
Date 2019-05-21.02:23:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1558405429.22.0.902415488536.issue36981@roundup.psfhosted.org>
In-reply-to
Content
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
History
Date User Action Args
2019-05-21 02:23:49viocalsetrecipients: + viocal, asvetlov, yselivanov
2019-05-21 02:23:49viocalsetmessageid: <1558405429.22.0.902415488536.issue36981@roundup.psfhosted.org>
2019-05-21 02:23:49viocallinkissue36981 messages
2019-05-21 02:23:49viocalcreate