← Back to issue list

Filesystem uid mapping incorrect in lxd instance

View original Github issue

Metadata

Project
craft-providers
Number
#97
Type
issue
State
closed
Author
cmatsuoka
Labels
—
Created
Updated
Closed

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

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.
80%
#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.
80%
#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.
79%
#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.
77%
#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.
74%
#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.
74%
#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.
72%
#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.
70%
#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.
70%