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 vstinner
Recipients martin.panter, vstinner
Date 2016-04-14.12:40:18
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1460637618.94.0.746653664005.issue26721@psf.upfronthosting.co.za>
In-reply-to
Content
Hum, since long time ago, Python has issues with partial write. It's hard to guess if a write will always write all data, store the data on partial write, or simply ignore remaining data on partial write.

I recall a "write1" function which was well defined: limited to 1 syscall, don't try (or maybe only on the very specific case of EINTR). But I'm not sure that it still exists in the io module of Python 3.

asyncio has also issues with the definition of "partial write" in its API.

You propose to fix the issue in socketserver.

socket.makefile(bufsize=0).write() uses send() and so use partial write. Are you sure that users are prepared for that? Maybe SocketIO must be modified to use sendall() when bufsize=0?
History
Date User Action Args
2016-04-14 12:40:18vstinnersetrecipients: + vstinner, martin.panter
2016-04-14 12:40:18vstinnersetmessageid: <1460637618.94.0.746653664005.issue26721@psf.upfronthosting.co.za>
2016-04-14 12:40:18vstinnerlinkissue26721 messages
2016-04-14 12:40:18vstinnercreate