GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GH-88968: Add notes about socket ownership transfers by gvanrossum · Pull Request #97936 · python/cpython

Conversation

@gvanrossum

@gvanrossum gvanrossum commented Oct 5, 2022 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There are four event loop methods (create_connection, create_datagram_endpoint, create_server, and connect_accepted_socket) that take an optional sock argument to specify an already-configured socket. To each, add a note that ownership of the socket (in particular, the responsibility to close it) thereby transfers to the transport or server object returned.

I also added similar notes to four stream-related top-level functions, open_connection, start_server, open_unix_connection, and start_unix_server.

  • Issue: asyncio.StreamReader.read hangs for reused socket file descriptors when asyncio.StreamWriter.close() is not called #88968

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@gvanrossum
gvanrossum requested review from 1st1 and asvetlov as code owners October 5, 2022 22:15
@bedevere-bot bedevere-bot added awaiting core review docs Documentation in the Doc dir skip news labels Oct 5, 2022
@gvanrossum
pythonGH-88968: Add notes about socket ownership transfers
bbad396
@gvanrossum
gvanrossum force-pushed the socket-notes branch from ba9bf4b to bbad396 Compare October 5, 2022 22:26
@gvanrossum
Also add notes for stream functions
0347265
@gvanrossum
gvanrossum requested a review from CAM-Gerlach October 5, 2022 22:29
CAM-Gerlach
CAM-Gerlach approved these changes Oct 5, 2022
View reviewed changes

@CAM-Gerlach CAM-Gerlach left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say "to the created transport", etc., as opposed to "to the transport created" as I think it reads more clearly and idiomatically, but maybe that's just me. Otherwise, LGTM.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@gvanrossum gvanrossum added needs backport to 3.10 needs backport to 3.11 only security fixes labels Oct 5, 2022
@gvanrossum
gvanrossum merged commit 74ea204 into python:main Oct 5, 2022
@bedevere-bot bedevere-bot removed the awaiting core review label Oct 5, 2022
@miss-islington

miss-islington commented Oct 5, 2022

Copy link
Copy Markdown
Contributor

Thanks @gvanrossum for the PR 🌮🎉.. I'm working now to backport this PR to: 3.10, 3.11.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gvanrossum
gvanrossum deleted the socket-notes branch October 5, 2022 23:42
@bedevere-bot bedevere-bot removed the needs backport to 3.11 only security fixes label Oct 5, 2022
@bedevere-bot

bedevere-bot commented Oct 5, 2022

Copy link
Copy Markdown

GH-97945 is a backport of this pull request to the 3.11 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot removed the needs backport to 3.10 label Oct 5, 2022
@bedevere-bot

bedevere-bot commented Oct 5, 2022

Copy link
Copy Markdown

GH-97946 is a backport of this pull request to the 3.10 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 5, 2022
@gvanrossum @miss-islington
pythonGH-88968: Add notes about socket ownership transfers (pythonGH-…
8b28374
…97936)

(cherry picked from commit 74ea204)

Co-authored-by: Guido van Rossum <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Oct 5, 2022
@gvanrossum @miss-islington
pythonGH-88968: Add notes about socket ownership transfers (pythonGH-…
34ecc9a
…97936)

(cherry picked from commit 74ea204)

Co-authored-by: Guido van Rossum <[email protected]>
miss-islington added a commit that referenced this pull request Oct 5, 2022
@miss-islington @gvanrossum
GH-88968: Add notes about socket ownership transfers (GH-97936)
0c387bf
(cherry picked from commit 74ea204)

Co-authored-by: Guido van Rossum <[email protected]>
miss-islington added a commit that referenced this pull request Oct 5, 2022
@miss-islington @gvanrossum
GH-88968: Add notes about socket ownership transfers (GH-97936)
c80c282
(cherry picked from commit 74ea204)

Co-authored-by: Guido van Rossum <[email protected]>
@ntc2 ntc2 mentioned this pull request Oct 6, 2022
asyncio.StreamReader.read hangs for reused socket file descriptors when asyncio.StreamWriter.close() is not called #88968
Closed
carljm added a commit to carljm/cpython that referenced this pull request Oct 6, 2022
@carljm
Merge branch 'main' into dictwatch
7938d6f
* main:
  pythonGH-88050: fix race in closing subprocess pipe in asyncio  (python#97951)
  pythongh-93738: Disallow pre-v3 syntax in the C domain (python#97962)
  pythongh-95986: Fix the example using match keyword (python#95989)
  pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK (pythonGH-97944)
  pythongh-94808: Cover `PyUnicode_Count` in CAPI (python#96929)
  pythongh-94808: Cover `PyObject_PyBytes` case with custom `__bytes__` method (python#96610)
  pythongh-95691: Doc BufferedWriter and BufferedReader (python#95703)
  pythonGH-88968: Add notes about socket ownership transfers (python#97936)
  pythongh-96865: [Enum] fix Flag to use CONFORM boundary (pythonGH-97528)
carljm added a commit to carljm/cpython that referenced this pull request Oct 8, 2022
@carljm
Merge branch 'main' into typewatch
1af2a98
* main: (53 commits)
  pythongh-94808: Coverage: Test that maximum indentation level is handled (python#95926)
  pythonGH-88050: fix race in closing subprocess pipe in asyncio  (python#97951)
  pythongh-93738: Disallow pre-v3 syntax in the C domain (python#97962)
  pythongh-95986: Fix the example using match keyword (python#95989)
  pythongh-97897: Prevent os.mkfifo and os.mknod segfaults with macOS 13 SDK (pythonGH-97944)
  pythongh-94808: Cover `PyUnicode_Count` in CAPI (python#96929)
  pythongh-94808: Cover `PyObject_PyBytes` case with custom `__bytes__` method (python#96610)
  pythongh-95691: Doc BufferedWriter and BufferedReader (python#95703)
  pythonGH-88968: Add notes about socket ownership transfers (python#97936)
  pythongh-96865: [Enum] fix Flag to use CONFORM boundary (pythonGH-97528)
  pythongh-65961: Raise `DeprecationWarning` when `__package__` differs from `__spec__.parent` (python#97879)
  docs(typing): add "see PEP 675" to LiteralString (python#97926)
  pythongh-97850: Remove all known instances of module_repr() (python#97876)
  I changed my surname early this year (python#96671)
  pythongh-93738: Documentation C syntax (:c:type:<C type> -> :c:expr:<C type>) (python#97768)
  pythongh-91539: improve performance of get_proxies_environment  (python#91566)
  build(deps): bump actions/stale from 5 to 6 (python#97701)
  pythonGH-95172 Make the same version `versionadded` oneline (python#95172)
  pythongh-88050: Fix asyncio subprocess to kill process cleanly when process is blocked (python#32073)
  pythongh-93738: Documentation C syntax (Function glob patterns -> literal markup) (python#97774)
  ...
mpage pushed a commit to mpage/cpython that referenced this pull request Oct 11, 2022
@gvanrossum @mpage
pythonGH-88968: Add notes about socket ownership transfers (python#97936
3335bbe
)
pablogsal pushed a commit that referenced this pull request Oct 22, 2022
@miss-islington @gvanrossum @pablogsal
GH-88968: Add notes about socket ownership transfers (GH-97936)
bf50f10
(cherry picked from commit 74ea204)

Co-authored-by: Guido van Rossum <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@CAM-Gerlach CAM-Gerlach CAM-Gerlach approved these changes
@1st1 1st1 Awaiting requested review from 1st1 1st1 is a code owner
@asvetlov asvetlov Awaiting requested review from asvetlov asvetlov is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

docs Documentation in the Doc dir skip news

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

4 participants

@gvanrossum @miss-islington @bedevere-bot @CAM-Gerlach
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.