← Back to issue list

fix: workaround for mknod in lxd

View original Github issue

Metadata

Project
imagecraft
Number
#482
Type
pull request
State
merged
Author
lengau
Labels
—
Created
Updated
Closed

Current evaluation

Merged into main. Implements a mknod shim to bypass inconsistent mknod behavior in LXD, resolving issue #489.

Resolution: closed resolved

Reason: The PR was merged, introducing a mknod shim at the front of PATH to work around inconsistent mknod calls in LXD, which resolves issue #489.

Evaluated by: mr-cal-bot

No scores available.

Issue body

In lxd, some `mknod` calls work while others fail, causing issues with mmdebstrap since its test call succeeds. This works around it by making a `mknod` shim at the front of $PATH that always fails in lxd. Fixes #489 CRAFT-5332 --- - [x] I've followed the [contribution guidelines](https://github.com/canonical/imagecraft/blob/main/CONTRIBUTING.md). - [x] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/). - [x] I've successfully run `make lint && make test`. - [x] I've added or updated any relevant documentation. - [x] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing. - [x] I've updated the relevant release notes.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b — closed resolved Merged into main. Implements a mknod shim to bypass inconsistent mknod behavior in LXD, resolving issue #489.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 23
Complexity: 30
Confidence: 75
Actionability: 65
needs review Adds an always-failing mknod shim prepended to PATH in LXD to work around mmdebstrap's partial mknod interception. Approved by 2 reviewers, CI green, 3 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 55
Quick Win: 21
Complexity: 40
Confidence: 75
Actionability: 65
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's partial mknod interception. Approved by one reviewer with CI green, but 2 unresolved review comments remain.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 18
Complexity: 40
Confidence: 70
Actionability: 60
needs review Adds always-failing mknod shim at front of PATH in LXD to work around mmdebstrap's successful test call; CI green, approved with 2 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 18
Complexity: 40
Confidence: 70
Actionability: 60
needs review Adds always-failing mknod shim at front of PATH in LXD to work around mmdebstrap's successful test call; CI green except pending spread, 2 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 20
Complexity: 35
Confidence: 70
Actionability: 60
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI green except pending spread, 2 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 20
Complexity: 35
Confidence: 65
Actionability: 60
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI green except pending spread, 2 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 45
Quick Win: 15
Complexity: 40
Confidence: 55
Actionability: 55
needs review Adds an always-failing mknod shim at the front of PATH in LXD so mmdebstrap's test call fails instead of proceeding; CI green, 2 unresolved review comments, spread tests pending.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 20
Complexity: 35
Confidence: 60
Actionability: 60
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI green except pending snap-builds, 2 unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 16
Complexity: 45
Confidence: 70
Actionability: 60
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI mostly green, one unresolved review comment.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 18
Complexity: 35
Confidence: 70
Actionability: 55
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI mostly green, two unresolved review comments.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 21
Complexity: 30
Confidence: 60
Actionability: 60
needs review Adds an always-failing mknod shim at the front of PATH in LXD to work around mmdebstrap's successful test call; CI pending, one unresolved review comment.
~deepseek/deepseek-pro-latest
Impact: 45
Quick Win: 23
Complexity: 35
Confidence: 72
Actionability: 80
needs review Adds a PATH-front mknod shim that always fails in LXD to work around mmdebstrap's mknod test succeeding while later calls fail. CI mostly passing, some checks pending.
~deepseek/deepseek-pro-latest
Impact: 50
Quick Win: 21
Complexity: 40
Confidence: 60
Actionability: 70
needs review Adds an always-failing mknod shim at the front of $PATH in LXD so mmdebstrap's test call fails and it falls back, avoiding partial mknod failures. Fresh PR, CI partially pending.

Update history

Date Change
merged
updated
updated
updated
updated
updated
updated
updated
updated
updated
created

Related work

  • Related To: imagecraft#489 (confidence 100%)

    Issue explicitly referenced as fixed by this PR.

Related issues

Issue Project State Summary Similarity
#3218 lxd: enable security.syscalls.intercept.mknod if supported to allow snaps to create some device nodes snapcraft merged Merged PR #3218 enabled LXD mknod interception only on supported kernels, allowing safe device-node creation while preserving compatibility with hosts such as Ubuntu 16.04.
74%
#358 DO NOT MERGE: check fix for lxd bug craft-providers closed Experimental workaround for canonical/lxd#11890 was closed unmerged after prolonged inactivity; no resolving commit or replacement was recorded.
71%
#191 Don't set security.syscalls.intercept.mknod=true for LXD provider craft-providers closed Resolved by merged PR #717 (commit 6ceb498), released in 2.2.0: LXDProvider gained an intercept_mknod option so applications can disable automatic mknod interception.
71%