Skip to content

📦 Disable cythonize parallelism w/ spawn#770

Merged
webknjaz merged 2 commits intoansible:develfrom
webknjaz:packaging/fix-build-hang-on-spawn-in-cythonize
Oct 10, 2025
Merged

📦 Disable cythonize parallelism w/ spawn#770
webknjaz merged 2 commits intoansible:develfrom
webknjaz:packaging/fix-build-hang-on-spawn-in-cythonize

Conversation

@webknjaz
Copy link
Copy Markdown
Member

@webknjaz webknjaz commented Oct 1, 2025

This is a workaround for a hang in Cython extention compilation under Python 3.8+ on macOS. It hangs in multiprocessing when the spawn method is set up so the patch simply sets the workers number to 1 to combat that.

Fixes #762 and fixes #769.

Upstream fix: cython/cython#7183

ISSUE TYPE
  • Maintenance Pull Request
  • Packaging Pull Request

Change log preview: https://ansible-pylibssh--770.org.readthedocs.build/en/770/changelog/#packaging-updates-and-notes-for-downstreams

@webknjaz webknjaz self-assigned this Oct 1, 2025
Copilot AI review requested due to automatic review settings October 1, 2025 23:05

This comment was marked as outdated.

@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from f338c07 to 87e8744 Compare October 1, 2025 23:10
webknjaz added a commit to webknjaz/ansible--pylibssh that referenced this pull request Oct 1, 2025
@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Oct 1, 2025
@packit-as-a-service

This comment was marked as outdated.

@webknjaz webknjaz marked this pull request as draft October 1, 2025 23:40
webknjaz added a commit to webknjaz/ansible--pylibssh that referenced this pull request Oct 2, 2025
@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from 87e8744 to 791ee57 Compare October 2, 2025 00:18
@webknjaz webknjaz marked this pull request as ready for review October 2, 2025 00:18
webknjaz added a commit to webknjaz/ansible--pylibssh that referenced this pull request Oct 2, 2025
@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from 791ee57 to 04f1fca Compare October 2, 2025 11:03
@webknjaz webknjaz enabled auto-merge October 2, 2025 11:23
@webknjaz webknjaz disabled auto-merge October 2, 2025 12:01
webknjaz added a commit to webknjaz/ansible--pylibssh that referenced this pull request Oct 10, 2025
@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from 04f1fca to 95686cf Compare October 10, 2025 22:30
webknjaz added a commit to webknjaz/ansible--pylibssh that referenced this pull request Oct 10, 2025
@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from 95686cf to cdb95b9 Compare October 10, 2025 22:40
This is a workaround for a hang in Cython extention compilation under
Python 3.8+ on macOS. It hangs in `multiprocessing` when the `spawn`
method is set up so the patch simply sets the workers number to `1` to
combat that.

Fixes ansible#762 and fixes ansible#769.

Upstream fix: cython/cython#7183
@webknjaz webknjaz force-pushed the packaging/fix-build-hang-on-spawn-in-cythonize branch from cdb95b9 to c4af16a Compare October 10, 2025 22:42
@webknjaz webknjaz merged commit 3d6cbc9 into ansible:devel Oct 10, 2025
62 checks passed
@github-project-automation github-project-automation bot moved this from 🫸In review🫷 to 🌈 Done 🦄 in 📅 Procrastinating in public 😵‍💫 Oct 10, 2025
# NOTE: script that hangs on macOS under Python 3.8+ due to the use of
# NOTE: the ``spawn`` method in ``multiprocessing``. This patch can be
# NOTE: reverted once the fix PR is usable upstream.
# Ref: https://github.com/cython/cython/pull/7183
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is first released as a part of Cython 3.2.0b1. We should be able to patch this conditionally @ get_local_cythonize_config().

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

Labels

bot:chronographer:provided There is a change note present in this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compilation failures cause installation hang [TODO] Ensure the in-tree build backend surfaces build problems early

2 participants