tests: retry installing lxd snap
Metadata
Current evaluation
Merged into main. Introduces retry logic for LXD snap installation in tests via snapd-testing-tools to workaround an intermittent snapd bug. Approved, passed CI, and caused no coverage changes.
Suggested action: —
No scores available.
Issue body
- [X] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [X] Have you successfully run `make lint`?
- [X] Have you successfully run `pytest tests/unit`?
-----
Use the `retry` function from [snapd-testing-tools](https://github.com/snapcore/snapd-testing-tools) when installing the lxd snap.
This is to workaround an intermittent and hard-to-reproduce [snapd bug](https://bugs.launchpad.net/snapd/+bug/1870201).
> :warning: **If you are having trouble running spread tests**: Try fetching the git submodules (`git submodule update --init --recursive`) to collect the snapd-testing-tools submodule.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged into main. Introduces retry logic for LXD snap installation in tests via snapd-testing-tools to workaround an intermittent snapd bug. Approved, passed CI, and caused no coverage changes. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Adds a retry mechanism for installing the lxd snap in tests via snapd-testing-tools to workaround an intermittent snapd bug. Code coverage remains unchanged. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main. Introduces retry logic for lxd snap installation in tests to workaround an intermittent snapd bug. Code coverage unchanged. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1984 fix(snap): check if LXD is actually installed | charmcraft | merged | Merged fix updating configure and remove hooks to verify LXD installation before proceeding. Prevents unwanted LXD snap installations on Ubuntu that cause delays. Approved by two reviewers, passed CI, and resolves #1982. | |
| #202 tests: bump lxd to 5.11 in spread tests | rockcraft | merged | Merged update bumping LXD in spread tests to 5.11, resolving installation failures from the unlisted 5.9 snap channel. Approved by two reviewers and passed CI. | |
| #2524 Snapcraft try | snapcraft | merged | Merged after approval. Implements snapcraft try functionality. LXD tests were split out due to store dependency and injection limitations. Coverage decreased by 0.08%. | |
| #2937 spread tests: do not attempt to remove snapd snap | snapcraft | merged | Merged a one-line fix to prevent spread tests from removing the snapd snap in LXD environments, resolving test failures caused by snapd's protected status. Approved by one reviewer with passing CI checks. | |
| #3725 tests: use lxd in clean provider test | snapcraft | merged | Merged into snapcraft/7.0. Enables LXD in provider cleaning tests to align with destructive mode testing. Approved by one reviewer, passed CI checks, and maintained existing code coverage. | |
| #3112 spread: remove dead code for lxd setup and add debug prints | snapcraft | merged | Merged removal of redundant elif dead code in LXD setup logic and addition of debug prints for LXD snap install failures. Approved by one reviewer, passed CI checks, and integrated. | |
| #1865 lxd: always (re-)injects snaps | snapcraft | merged | Merged to fix LP: #1741752 by ensuring LXD containers always re-inject snaps. Changes refactor injection logic, reorganize files, and properly handle side-loaded snap assertions. Approved by reviewer and passed CI. | |
| #1411 tests: build the snapcraft snap in travis tests | snapcraft | merged | Merged after approval. Added Travis CI configuration to build the snapcraft snap, requiring dependency PR #1415. Reviewer recommended validating changes with spread using the lxd backend. | |
| #262 tests: install docker after lxd | rockcraft | merged | Merged test changes to install Docker after LXD, resolving order-dependent failures and a race condition. A separate PR will address the remaining flaky spread test. | |
| #2098 lxd: wait for on-going refreshes to finish | snapcraft | merged | Merged fix adding a snap watch call before injecting snaps into LXD containers to wait for ongoing refreshes. Resolves race conditions causing build failures in issues #2037 and LP: #1722049. Approved by reviewer and passed CI. |