test(spread): make LXD refresh in prepare more reliable
Metadata
Current evaluation
Closed unmerged; its LXD auto-refresh race fix was superseded by merged PR #1170 (commit fea3e835), which waits for active snap refreshes during spread prepare.
Resolution: closed superseded
Reason: PR #1170 replaced this retry-based approach with a refresh hold and wait for active auto-refreshes, then merged as commit fea3e835.
Evaluated by: mr-cal-bot
No scores available.
Issue body
## Summary
- make spread project prepare robust when LXD snap refresh collides with snap auto-refresh
- retry only the known transient error: `snap "lxd" has "auto-refresh" change in progress`
- keep other failures as hard failures
## Context
- addresses spread project prepare failures seen in https://github.com/canonical/craft-application/actions/runs/29414578447/job/87350369623?pr=1128
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Closed unmerged; its LXD auto-refresh race fix was superseded by merged PR #1170 (commit fea3e835), which waits for active snap refreshes during spread prepare. | |
| qwen/qwen3.8-27b | — | closed resolved | Made spread project prepare robust against LXD snap refresh colliding with snapd auto-refresh by waiting out in-progress auto-refresh changes. Merged as PR #1170 (commit fea3e835), fixing flaky prepare failures seen in craft-application#1128 CI runs. | |
| stealth/space-bunny-alpha |
Impact:
28
Quick Win:
6
Complexity:
20
Confidence:
98
Actionability:
25
|
close superseded | Retries only the known LXD auto-refresh conflict during Spread prepare; inactive with one unresolved comment, failing policy/lint checks, and OpenStack tests pending. | |
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
50
Quick Win:
38
Staleness:
70
Complexity:
25
Confidence:
65
|
needs review | Retry only the known LXD auto-refresh transient error in spread prepare to avoid hard failures. Has 1 unresolved review comment, 49 days of inactivity, and failing CI checks. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
10
Complexity:
15
Confidence:
85
|
needs review | Fixes spread project prepare failures during LXD snap refresh collisions by retrying only the known transient auto-refresh error. Currently pending review with minor lint and title policy failures. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
5
Complexity:
15
Confidence:
90
|
needs review | Makes spread project prepare robust against LXD snap refresh collisions by retrying only the known transient auto-refresh error. Currently unreviewed and awaiting maintainer feedback. |
Update history
| Date | Change |
|---|---|
| closed | |
| updated |
Related work
-
Superseded By:
canonical/craft-application#1170
(confidence 99%)
Merged replacement implementation, committed as fea3e835.
-
Related To:
canonical/craft-application#1128
(confidence 90%)
Its CI run exposed the transient LXD refresh failure targeted by these changes.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1190 test(spread): wait for pending snap auto-refresh before refreshing lxd | craft-application | closed | Superseded by merged PR canonical/craft-application#1170 (fea3e835), which added a broader snap auto-refresh hold and wait; #1190's narrower fix was closed unmerged. | |
| #1170 test(spread): wait out in-progress auto-refresh in prepare | craft-application | closed | Merged PR #1170 as fea3e835, adding a 24-hour snap refresh hold and waiting for active auto-refreshes to prevent spread prepare races. | |
| #2631 spread tests: enable LXD build provider tests | snapcraft | merged | Merged PR #2631 enabled LXD build-provider spread tests and reused early-prepared LXD setup, reducing repeated setup and image-download overhead. | |
| #483 test(spread): run snap-preseed tests in lxd | imagecraft | merged | Merged PR #483 to update snap-preseed plugin tests to run in LXD across all systems, addressing CRAFT-5332. | |
| #467 test(spread): use LXD provider for spread tests | imagecraft | closed | PR closed without merge; spread LXD provider changes were implemented across follow-up PRs (#483, #485, #486, #487, #488, #495) | |
| #485 test(spread): test uc-prepare in lxd | imagecraft | merged | Merged PR adding spread tests for uc-prepare on LXD across core22, core24, and core26 base images. | |
| #2937 spread tests: do not attempt to remove snapd snap | snapcraft | merged | Merged in commit b9290bb32; spread tests now skip removing the protected snapd snap, fixing LXD test failures. | |
| #694 tests(spread): use LXD from `5.21/candidate` | rockcraft | merged | Merged PR #694 in commit 90bc9b34, pinning spread tests to LXD 5.21/candidate to restore main and strengthen LTS regression coverage. | |
| #2983 tests: add LXD spread test | snapcraft | merged | Merged PR #2983 as 4b8522a14, adding spread coverage that builds the LXD package with LXD and destructive/host providers; installation checks were deferred. | |
| #302 test(spread): switch to testing in destructive mode | imagecraft | merged | Merged PR #302 as commit f6aae5e, switching spread tests to destructive mode while LXD lacks required loop-device support. |