← Back to issue list

fix: use fork context for chroot in python 3.14

View original Github issue

Metadata

Project
craft-parts
Number
#1672
Type
pull request
State
merged
Author
cmatsuoka
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR canonical/craft-parts#1672 (commit 12da4851): chroot() now explicitly uses the multiprocessing 'fork' start context, restoring parent chroot state on Python 3.14. Closes #1642.

Resolution: closed resolved

Reason: The PR was merged into main as commit 12da4851, approved by 2 reviewers with all CI jobs green, and explicitly declares "Fixes #1642". Issue #1642 ('Craft Parts does not support Python 3.14') is recorded as closed by this change.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Python 3.14 changed the Linux default from `fork` to `forkserver`, so the child process no longer inherits the parent’s state such as monkeypatched chdir or chroot. Explicitly request the `fork` start method inside `chroot()` to keep the same behavior across all supported Python versions. Fixes #1642 - [x] Have you followed the guidelines for contributing? - [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? - [ ] Have you successfully run `make lint && make test`? - [ ] Have you added an entry to the changelog (`docs/reference/changelog.rst`)? ---

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged PR canonical/craft-parts#1672 (commit 12da4851): chroot() now explicitly uses the multiprocessing 'fork' start context, restoring parent chroot state on Python 3.14. Closes #1642.
stealth/space-bunny-alpha — closed resolved Merged in canonical/craft-parts#1672 (commit 12da4851), preserving parent chroot state on Python 3.14 by explicitly using the fork start method; fixes #1642.
qwen/qwen3.6-35b-a3b — — Merged fix for Python 3.14 compatibility by explicitly using the fork start method in chroot(). This preserves parent state inheritance lost due to Python's new forkserver default. Resolves #1642 after passing all CI checks and receiving two approvals.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 15
Confidence: 95
needs review Explicitly requests fork start method in chroot() to maintain compatibility with Python 3.14's new forkserver default. Approved by two reviewers, CI passing, pending two slow tests, 2 unresolved comments.
qwen/qwen3.6-35b-a3b
Staleness: 0
Complexity: 10
Confidence: 95
needs review Addresses Python 3.14 forkserver default breaking chroot state inheritance by explicitly requesting fork context. Currently approved by one reviewer with passing CI checks and several pending jobs.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 15
Confidence: 90
needs review Fixes Python 3.14 forkserver default breaking chroot by explicitly using fork context. Currently awaiting maintainer review with CI tests pending.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 20
Confidence: 90
needs review Addresses Python 3.14 multiprocessing default change by explicitly using fork context in chroot() to preserve state. Currently awaiting maintainer review and CI completion.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 15
Confidence: 90
needs review Updates chroot() to explicitly use the fork start method, addressing Python 3.14's default shift to forkserver which broke state inheritance. Currently pending maintainer review and CI completion.

Update history

Date Change
updated
updated
updated
updated
updated
created

Related work

  • Duplicate Of: craft-parts#1642 (confidence 90%)

    #1642 is the tracking issue that #1672 closes; its 3.14 chroot failures were resolved by the fork-context change.

Related issues

Issue Project State Summary Similarity
#1642 Craft Parts does not support Python 3.14 craft-parts closed Python 3.14 chroot failures were fixed by explicitly using the multiprocessing fork context in #1672 (commit 12da4851).
74%