packages: don't write info logs in overlays
Metadata
Current evaluation
Merged a fix that downgrades overlay package logging from info to debug to prevent terminal deadlocks during chroot subprocess operations. A main-process info message replaces it. Approved by two reviewers and passed CI.
Suggested action: —
No scores available.
Issue body
This commit is a workaround for a current bad interaction between the way we perform overlay operations (a chroot in a multiprocess-created subprocess) and the way craft applications indicate progress on the cli (a spinner in a thread).
The consequence of the bad interaction is that trying to write an info message to the terminal ends up deadlocking the main thread in the subprocess because the thread that could unblock it does not exist.
Instead, log the message as 'debug' instead of 'info', and add a main- process-side 'info' message to communicate that overlay packages are being fetched.
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged a fix that downgrades overlay package logging from info to debug to prevent terminal deadlocks during chroot subprocess operations. A main-process info message replaces it. Approved by two reviewers and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a fix preventing terminal deadlocks during overlay operations. Subprocess log messages were downgraded from info to debug, with a main-process info message added to track package fetching progress. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #536 packages: don't write info logs in overlays (#535) | craft-parts | merged | Merged a fix for a subprocess deadlock during package overlay operations. Downgrading terminal info logs to debug and moving progress updates to the main process prevents thread blocking. Approved by reviewers and passed CI. | |
| #490 overlays: collect log messages from chrooted call | craft-parts | closed | Closed without merging. The change proposed capturing and piping log messages from chrooted child processes to the parent to resolve missing overlay package logs. Lacked reviewer feedback and CI validation, resulting in an abandoned resolution. | |
| #146 overlay: pass error message from chrooted process (CRAFT-580) | craft-parts | merged | Merged updates to chroot error handling that pass error message strings and raise ChrootExecutionError instead of original exceptions, avoiding custom unpickling. Approved by one reviewer, passed CI, and modified four files. |