← Back to issue list

Python plugin fails intermittently to find an interpreter

View original Github issue

Metadata

Project
craft-parts
Number
#1025
Type
issue
State
closed
Author
mr-cal
Labels
—
Created
Updated
Closed

Current evaluation

Fixed the intermittent interpreter lookup failure by draining subprocess output after process exit; merged in canonical/craft-parts#1036 at commit a80be133.

Resolution: closed resolved

Reason: PR #1036 fixed the race that returned before all combined output was collected and was merged as commit a80be133. The maintainer explicitly identified it as the resolution for #1025.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### What needs to get done Fix the intermittent failure to find an interpreter in the Python plugin. ### Why it needs to get done The python plugin fails intermittently in Rockcraft's and Snapcraft's spread test suite. @cmatsuoka made some changes to outputs in #1012. This was released in [craft-parts 2.6.2](https://canonical-craft-parts.readthedocs-hosted.com/en/latest/reference/changelog.html). I tested this release downstream in Snapcraft in https://github.com/canonical/snapcraft/pull/5273 but the [error is still intermittent](https://github.com/canonical/snapcraft/actions/runs/13439901607/job/37558212031?pr=5273#step:4:284) for the "not provisioned" tests within the [Python symlinks test suite](https://github.com/canonical/snapcraft/tree/main/tests/spread/plugins/craft-parts/python-symlinks).

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Fixed the intermittent interpreter lookup failure by draining subprocess output after process exit; merged in canonical/craft-parts#1036 at commit a80be133.
stealth/space-bunny-alpha — closed resolved Fixed the intermittent interpreter lookup failure in craft-parts via merged PR #1036 (commit a80be133), which collects complete subprocess output before processing it.
qwen/qwen3.6-35b-a3b — — Fixed in PR #1036 by refactoring the output processing loop to resolve a race condition causing intermittent Python interpreter lookup failures in craft-parts.
qwen/qwen3.6-35b-a3b — — Intermittent Python interpreter lookup failures caused by an output processing race condition were resolved. Refactoring the output collection loop to run after subprocess termination fixed the issue. Merged in PR #1036.
qwen/qwen3.6-35b-a3b — — Fixed in PR #1036 by refactoring the output processing loop to resolve a race condition causing premature exit during Python interpreter lookup, eliminating the intermittent craft-parts test failures.
qwen3.6-35b-a3b-mtp-q6 — — Fixed in #1036 by refactoring the output processing loop to collect stream contents after verifying subprocess termination, resolving the race condition that caused intermittent Python interpreter lookup failures in spread tests.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/craft-parts#1036 (confidence 100%)

    Merged fix ensuring subprocess output is fully collected after the process ends.

Related issues

No related issues found above the similarity threshold.