Snapd Seems broken on 21.04

I’ve been testing 21.04 Beta the last few days. Right now every none --classic snap seems to be broken:

cannot perform operation: mount --rbind /dev /tmp/snap.rootfs_jWhEKJ//dev: No such file or directory

Is one of the errors I get when trying to launch a confined snap. I think this might possibly be some sort of error related to zfs as I am using that in 21.04. But additionally I can point out that the target dir /tmp/snap.rootfs_jWhEKJ//dev doesn’t seem to get created. Additionally attempting to manually add that directory doesn’t appear to help the issue.

I should note that I reported this on launchpad too, but thought it might be a good idea to go “straight to the horses mouth” so to speak.

What is SNAP_CONFINE_DEBUG=1 snap run hello-world from your machine?

Here’s the output:

DEBUG: umask reset, old umask was   02
DEBUG: security tag: snap.hello-world.hello-world
DEBUG: executable:   /usr/lib/snapd/snap-exec
DEBUG: confinement:  non-classic
DEBUG: base snap:    core
DEBUG: ruid: 1000, euid: 0, suid: 0
DEBUG: rgid: 1000, egid: 1000, sgid: 1000
DEBUG: apparmor label on snap-confine is: /usr/lib/snapd/snap-confine
DEBUG: apparmor mode is: enforce
DEBUG: creating lock directory /run/snapd/lock (if missing)
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: opening lock directory /run/snapd/lock
DEBUG: set_effective_identity uid:0 (change: no), gid:1000 (change: yes)
DEBUG: opening lock file: /run/snapd/lock/.lock
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:1000 (change: yes)
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: acquiring exclusive lock (scope (global), uid 0)
DEBUG: sanity timeout reset and disabled
DEBUG: ensuring that snap mount directory is shared
DEBUG: unsharing snap namespace directory
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:1000 (change: yes)
DEBUG: releasing lock 5
DEBUG: opened snap-update-ns executable as file descriptor 5
DEBUG: opened snap-discard-ns executable as file descriptor 6
DEBUG: creating lock directory /run/snapd/lock (if missing)
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: opening lock directory /run/snapd/lock
DEBUG: set_effective_identity uid:0 (change: no), gid:1000 (change: yes)
DEBUG: opening lock file: /run/snapd/lock/hello-world.lock
DEBUG: set_effective_identity uid:0 (change: no), gid:0 (change: yes)
DEBUG: set_effective_identity uid:0 (change: no), gid:1000 (change: yes)
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: acquiring exclusive lock (scope hello-world, uid 0)
DEBUG: sanity timeout reset and disabled
DEBUG: initializing mount namespace: hello-world
DEBUG: setting up device cgroup
DEBUG: no devices tagged with snap_hello-world_hello-world, skipping device cgroup setup
DEBUG: DEBUG: changing apparmor hat to mount-namespace-capture-helper
forked support process 145779
DEBUG: helper process waiting for command
DEBUG: sanity timeout initialized and set for 30 seconds
DEBUG: unsharing the mount namespace (per-snap)
DEBUG: scratch directory for constructing namespace: /tmp/snap.rootfs_ocfHMO
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: performing operation: (disabled) use debug build to see details
DEBUG: performing operation: (disabled) use debug build to see details
cannot perform operation: mount --rbind /dev /tmp/snap.rootfs_ocfHMO//dev: No such file or directory

Additionally, on lp, we think we’ve narrowed down the issue to being a bug between 21.04 & ZFS in some fashion.

Some good new. I found a workaround. Summary is that snapd doesn’t seem to be mounting the filesystems it’s suppose to. Mounting them manually with :

systemctl restart snap-*.mount

Get’s things moving again. Like I mentioned, there’s some wayland/x bugs I’m running into. But those are probably different fixes. Doing a bit more digging, looks like lots of snaps might not work on 21.04 depending on how it handles Wayland.

1 Like