New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Python epoll1 Fork Support #32196
Conversation
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.
This is great, Richard! Have you confirmed this iteration order fix yet with the external reproductions?
@Vignesh2208 we'll still need to do some work to decouple the PosixEventEngine from the iomgr fork handlers. But we'll soon have some tests that'll help us do that safely.
I have specifically confirmed that this fixes the issue for Ray on Mac OS. |
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.
Looks good!
* WIP. A seemingly properly failing test * WIP. Pre-fork handlers now work * Roughly working. * Clean up * Clean up more * Add to CI * Format * Ugh. Remove swap file * And another * clean up * Add copyright * Format * Remove another debug line * Add stub forkable methods * Remove use of 3.9+ function * Remove unintentional double copyright * drfloob review comments * Only hold lock during Close once * Create separate job for fork test * Bump up gdb timeout * Format
* WIP. A seemingly properly failing test * WIP. Pre-fork handlers now work * Roughly working. * Clean up * Clean up more * Add to CI * Format * Ugh. Remove swap file * And another * clean up * Add copyright * Format * Remove another debug line * Add stub forkable methods * Remove use of 3.9+ function * Remove unintentional double copyright * drfloob review comments * Only hold lock during Close once * Create separate job for fork test * Bump up gdb timeout * Format
This PR resolves several issues in core impacting fork support in Python. It also reenables and improves the existing Python-layer fork test.