Filesystem uid mapping incorrect in lxd instance
Metadata
Current evaluation
LXD host-mount ID mapping was fixed by #98 (05d4834), then refined by merged #780 (5717e2c), which sets UID and GID maps separately.
Resolution: closed resolved
Reason: PR #98 passed the host owner ID into LXD mount mapping, and its commit was merged as 76a2d3a. PR #780 later corrected UID/GID mapping separately and is recorded as the resolving change.
Evaluated by: mr-cal-bot
No scores available.
Issue body
When mounting a host filesystem on a lxd instance craft-providers is mapping the id of the current user instead of the id of the owner of the directory being mounted. If an application (such as Snapcraft) tries to create a file inside its project directory mounted from the host that has a different owner, it will fail. This happens during Snapcraft spread tests in gce.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | LXD host-mount ID mapping was fixed by #98 (05d4834), then refined by merged #780 (5717e2c), which sets UID and GID maps separately. | |
| qwen/qwen3.6-35b-a3b | — | closed resolved | Fixed in craft-providers#780 by setting uid and gid maps separately for LXD instances, resolving incorrect filesystem uid mapping for mounted directories. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
canonical/craft-providers#780
(confidence 99%)
Merged fix separating UID and GID maps, commit 5717e2c.
-
Likely Fixed By:
canonical/craft-providers#98
(confidence 97%)
Earlier fix passed the host owner ID for LXD mount mapping; merged as 76a2d3a.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #18 providers: fix id mapping in lxd project mount | rockcraft | merged | Merged PR #18 fixed LXD project mounts to map the host directory owner rather than the current UID, preventing file-creation failures when their IDs differ. | |
| #769 LXD idmap improperly set for high uids and gids | craft-providers | closed | Fixed by merged PR #98 (76a2d3a): LXD raw.idmap now maps the host UID and GID separately, correcting ownership for high, mismatched IDs. | |
| #98 lxd: pass id for host mount uid mapping | craft-providers | merged | Merged #98 added an application-provided ID for LXD host-mount UID mapping while retaining the running user's UID as the default, resolving #97. | |
| #780 fix(lxd): set uid map and gid map separately | craft-providers | merged | Merged PR #780 as commit 5717e2c, fixing #769 by configuring LXD UID and GID maps separately; approved by two reviewers. | |
| #1588 lxd: use SUDO_UID for ID mapping | snapcraft | merged | Merged PR #1588 as commit 695794f4c, changing LXD ID mapping to use SUDO_UID and fixing Launchpad bug 1719996. | |
| #1385 lxd: Don't assume user ID to 1000 for raw.idmap | snapcraft | merged | Merged PR #1385 as commit e85e0779b, removing LXD raw.idmap's hard-coded UID 1000 assumption for Launchpad bug 1700703; PR #1904 later corrected mapping order. | |
| #259 Cannot launch lxd instance with high uids | craft-providers | open | LXD launches failed for host UIDs above 65,535; commit 5717e2c and PR #780 now configure separate UID and GID raw.idmap entries, resolving the reported failure. | |
| #1629 lxd: fix the unit test for the user id map | snapcraft | merged | Merged as commit e820e119e (#1629), fixing the LXD user ID-map unit test under root execution after #1588 changed ID mapping to use SUDO_UID. | |
| #1904 lxd: raw.idmap expects host and container id respectively | snapcraft | merged | Merged PR #1904 fixed LXD `raw.idmap` argument order so host UID maps to container root (0), instead of mapping both IDs to the host user; commit 6bd4c9e59. |