Writable Content slot not mounting properly

When I attempt to create a writable content slot using $SNAP_USER_COMMON i get a strange mount in the consuming plug.

Here’s my slot:

    interface: content
    content: data-root

Here’s the plug

    interface: content
    content: data-root
    target: $SNAP/data-root

With this configuration, once the slots and plugs are connected between the two snaps, it appears that the $SNAP_USER_COMMON value is empty during the bind mount? I’m really not sure what’s going on:

(snap run --shell consumer)
$ mount | grep data-root
/var/lib/snapd/snaps/producer_x20.snap on /snap/consumer/x27/data-root type squashfs (ro,nodev,relatime,errors=continue)

Using $SNAP_COMMON in the slot, I get the behavior I expect, although the directory is owned by root so this doesn’t help me much.

(snap run --shell consumer)
$ mount | grep data-root
/dev/nvme1n1p5 on /snap/consumer/x27/data-root type ext4 (rw,relatime,errors=remount-ro)

I see the same behavior between SNAP_DATA and SNAP_USER_DATA too.

Any help would be appreciated.

I’ve worked around this for now with a configure hook but this is definitely sub-optimal for me.


chmod a+rwx $SNAP_COMMON
find $SNAP_COMMON -type d -exec chmod a+rwx {} \;
find $SNAP_COMMON -type f -exec chmod a+rw {} \;