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-104372: Use non-Raw malloc for c_fds_to_keep in _posixsubprocess by gpshead · Pull Request #104697 · python/cpython

Conversation

@gpshead

@gpshead gpshead commented May 20, 2023 •
edited by bedevere-bot
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

As the code could ask for 0 length.

This is a tiny fix to a theoretical issue with PR #104518.

  • Issue: subprocess can block all Python threads when using vfork() until the child process exec() succeeds or fails. #104372

Sorry, something went wrong.

Uh oh!

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

All reactions
@gpshead
Use non-Raw malloc for c_fds_to_keep.
7eaaaa2
As the code could ask for 0 length.
@gpshead gpshead added type-bug An unexpected behavior, bug, or error skip news labels May 20, 2023
@gpshead gpshead self-assigned this May 20, 2023
@bedevere-bot bedevere-bot mentioned this pull request May 20, 2023
subprocess can block all Python threads when using vfork() until the child process exec() succeeds or fails. #104372
Closed
@gpshead
gpshead marked this pull request as ready for review May 20, 2023 16:43
@bedevere-bot bedevere-bot added the awaiting core review label May 20, 2023
@gpshead
gpshead enabled auto-merge (squash) May 20, 2023 16:44
@gpshead
gpshead merged commit d1732fe into python:main May 20, 2023
@bedevere-bot bedevere-bot removed the awaiting core review label May 20, 2023
@gpshead
gpshead deleted the subprocess-c_fds_to_keep-non-raw branch May 20, 2023 17:18
@gpshead gpshead mentioned this pull request May 23, 2023
[3.11] gh-104372: Cleanup _posixsubprocess make_inheritable for async signal safety gh-104518 #104785
Merged
gpshead added a commit to gpshead/cpython that referenced this pull request May 23, 2023
@gpshead
Don't use Raw malloc & free.
c684290
Backport of d1732fe to 3.11 from python#104697.
@gpshead gpshead mentioned this pull request May 23, 2023
gh-104372: Drop the GIL around the vfork() call. #104782
Merged
gpshead added a commit that referenced this pull request May 24, 2023
@gpshead
[3.11] gh-104372: Cleanup _posixsubprocess make_inheritable for async…
6d00ae3
… signal safety gh-104518 (#104785)

Move all of the Python C API calls into the parent process up front
instead of doing PyLong_AsLong and PyErr_Occurred and PyTuple_GET from
the post-fork/vfork child process.

Much of this was long overdue. We shouldn't have been using PyTuple and
PyLong APIs within all of these low level functions anyways.

This is a backport of c649df6 for #104518 and the tiny adjustment in d1732fe #104697.

Backporting this allows backporting of the real bug fix that requires it.

Co-authored-by: Gregory P. Smith [Google] <[email protected]>
@vstinner

vstinner commented May 24, 2023

Copy link
Copy Markdown
Member

PyMem_RawMalloc(0) is well defined: https://docs.python.org/dev/c-api/memory.html#c.PyMem_RawMalloc

But I prefer to use PyMem_Malloc() when the GIL is held, it's usually faster ;-)

gpshead reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

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

Assignees

@gpshead gpshead

Labels

skip news type-bug An unexpected behavior, bug, or error

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.

3 participants

@gpshead @vstinner @bedevere-bot
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.