LXD fails to mount host path into container

I’m running LXD from snap latest/stable, and after the April 20th update can no longer start containers that have disk devices with a source path in the filesystem. The config hasn’t changed, this particular container has always worked:

$ lxc config device show plex
[...]
dvr_movies: <-- ZFS disk device works fine
  path: /media/dvr_movies
  pool: zfs
  source: dvr_movies
  type: disk
movies: <-- Local filesystem mount does not
  path: /media/movies
  source: /mnt/pmag/movies/
  type: disk
[...]

The error:

$ lxc start plex             
Error: Failed to load device to start "movies": Missing source path "/mnt/pmag/movies/" for disk "movies"
Try `lxc info --show-log plex` for more info

To confirm the path does exist:

$ stat /mnt/pmag/movies
  File: /mnt/pmag/movies
  Size: 171             Blocks: 81         IO Block: 16384  directory
Device: 29h/41d Inode: 250761      Links: 4
Access: (0775/drwxrwxr-x)  Uid: ( 1000/rdmcguire)   Gid: ( 1000/rdmcguire)
Access: 2021-08-31 09:05:17.098402419 -0400
Modify: 2021-11-04 12:47:01.427394632 -0400
Change: 2021-11-04 12:47:01.427394632 -0400

Any advice on how I can get my containers running again?

Regards,

-Ryan

Please can you show the output of mount and sudo nsenter --mount=/run/snapd/ns/lxd.mnt -- mount

Thank you for the quick reply!

$ mount|grep pmag
lxdzfs/pmag on /mnt/pmag type zfs (rw,noatime,xattr,posixacl)
$ sudo nsenter --mount=/run/snapd/ns/lxd.mnt -- mount|grep pmag

If there was something else you were looking for I can post it, I have a few containers (both LXD and docker), so full output is almost 200 lines.

Sounds like it could be caused by a snap mount propagation bug.
Have you rebooted the machine since snap refreshed?

As much as it pains me to admit it, I had not – and it is now working. I tend to think the only reason a reboot is necessary is for upgrading the kernel, I guess I’ll be left to wonder how this happened!

Thank you,

-Ryan

1 Like