Python plugin fails intermittently to find an interpreter
Metadata
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.