gh-103462: Ensure SelectorSocketTransport.writelines registers a writer when data is still pending#103463
Conversation
Includes two failing tests that demonstrate a bug where if the data passed to writelines can't be sent in one shot, the remaining buffer isn't written since there is no registered write handler
If all the data in the buffer can't be written immediately schedule a writer to handle the remaining data.
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
Sorry, something went wrong.
Sorry, something went wrong.
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
Sorry, something went wrong.
When the platform (windows) doesn't support it skip tests for writelines using sendmsg
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
Sorry, something went wrong.
kumaraditya303
left a comment
There was a problem hiding this comment.
LGTM, Can you add a news entry? Thanks
Sorry, something went wrong.
done! |
Sorry, something went wrong.
* main: pythongh-103479: [Enum] require __new__ to be considered a data type (pythonGH-103495) pythongh-103365: [Enum] STRICT boundary corrections (pythonGH-103494) pythonGH-103488: Use return-offset, not yield-offset. (pythonGH-103502) pythongh-103088: Fix test_venv error message to avoid bytes/str warning (pythonGH-103500) pythonGH-103082: Turn on branch events for FOR_ITER instructions. (python#103507) pythongh-102978: Fix mock.patch function signatures for class and staticmethod decorators (python#103228) pythongh-103462: Ensure SelectorSocketTransport.writelines registers a writer when data is still pending (python#103463) pythongh-95299: Rework test_cppext.py to not invoke setup.py directly (python#103316)
…a writer when data is still pending (python#103463)
Description
When the payload used with
SelectorSocketTransport.writelinesis too large to write in one call to eithersocket.sendorsocket.sendmsgthe remaining buffer needs to be handled by registering a write handler.Related Pull Request / Issue