I previously had trouble with parallel instances under certain circumstances, but I could work with parallel instances as recently as mid-October (maybe sooner, but I didn’t record doing so). Now, I’m having trouble with simply connecting interfaces.
$ sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
$ sudo snap set system experimental.parallel-instances=true
$ sudo snap install --channel=edge aws-iot-greengrass
aws-iot-greengrass (edge) 1.11.0 from Amazon Web Services (aws✓) installed
$ sudo snap install --channel=edge aws-iot-greengrass_prime
aws-iot-greengrass_prime (edge) 1.11.0 from Amazon Web Services (aws✓) installed
$ snap list
Name Version Rev Tracking Publisher Notes
amazon-ssm-agent 2.3.978.0 2012 latest/stable/… aws✓ classic
aws-iot-greengrass 1.11.0 44 latest/edge aws✓ -
aws-iot-greengrass_prime 1.11.0 44 latest/edge aws✓ -
core 16-2.47.1 10185 latest/stable canonical✓ core
core18 20200724 1885 latest/stable canonical✓ base
lxd 4.0.3 16922 4.0/stable/… canonical✓ -
snapd 2.48+git481.g5387521 10450 latest/edge canonical✓ snapd
I can’t connect with the first instance:
$ sudo snap connect aws-iot-greengrass:hardware-observe
error: cannot perform the following tasks:
- Connect aws-iot-greengrass:hardware-observe to snapd:hardware-observe (cannot update mount namespace of snap "aws-iot-greengrass": cannot update preserved namespace of snap "aws-iot-greengrass": cannot update snap namespace: remove /snap/aws-iot-greengrass/44/usr/bin/python3: read-only file system)
$ sudo snap connect aws-iot-greengrass:hardware-observe
error: cannot perform the following tasks:
- Connect aws-iot-greengrass:hardware-observe to snapd:hardware-observe (cannot update mount namespace of snap "aws-iot-greengrass": cannot update preserved namespace of snap "aws-iot-greengrass": cannot update snap namespace: remove /usr/bin/python3.8: read-only file system)
However, it’ll work with the second instance:
$ sudo snap connect aws-iot-greengrass_prime:hardware-observe
ubuntu@ip-172-31-29-24:~$ snap connections
Interface Plug Slot Notes
greengrass-support aws-iot-greengrass:greengrass-support-no-container :greengrass-support -
greengrass-support aws-iot-greengrass_prime:greengrass-support-no-container :greengrass-support -
hardware-observe aws-iot-greengrass_prime:hardware-observe :hardware-observe manual
home aws-iot-greengrass:home-for-greengrassd :home -
home aws-iot-greengrass:home-for-hooks :home -
home aws-iot-greengrass_prime:home-for-greengrassd :home -
home aws-iot-greengrass_prime:home-for-hooks :home -
lxd-support lxd:lxd-support :lxd-support -
network aws-iot-greengrass:network :network -
network aws-iot-greengrass_prime:network :network -
network lxd:network :network -
network-bind aws-iot-greengrass:network-bind :network-bind -
network-bind aws-iot-greengrass_prime:network-bind :network-bind -
network-bind lxd:network-bind :network-bind -
network-control aws-iot-greengrass:network-control :network-control -
network-control aws-iot-greengrass_prime:network-control :network-control -
opengl aws-iot-greengrass:opengl :opengl -
opengl aws-iot-greengrass_prime:opengl :opengl -
optical-drive aws-iot-greengrass:optical-drive :optical-drive -
optical-drive aws-iot-greengrass_prime:optical-drive :optical-drive -
process-control aws-iot-greengrass:process-control :process-control -
process-control aws-iot-greengrass_prime:process-control :process-control -
system-observe aws-iot-greengrass:system-observe :system-observe -
system-observe aws-iot-greengrass_prime:system-observe :system-observe -
system-observe lxd:system-observe :system-observe -
ubuntu@ip-172-31-29-24:~$ snap connections aws-iot-greengrass
Interface Plug Slot Notes
camera aws-iot-greengrass:camera - -
dvb aws-iot-greengrass:dvb - -
gpio aws-iot-greengrass:gpio - -
gpio-memory-control aws-iot-greengrass:gpio-memory-control - -
greengrass-support aws-iot-greengrass:greengrass-support-no-container :greengrass-support -
hardware-observe aws-iot-greengrass:hardware-observe - -
hardware-random-control aws-iot-greengrass:hardware-random-control - -
home aws-iot-greengrass:home-for-greengrassd :home -
home aws-iot-greengrass:home-for-hooks :home -
hugepages-control aws-iot-greengrass:hugepages-control - -
i2c aws-iot-greengrass:i2c - -
iio aws-iot-greengrass:iio - -
joystick aws-iot-greengrass:joystick - -
log-observe aws-iot-greengrass:log-observe - -
mount-observe aws-iot-greengrass:mount-observe - -
network aws-iot-greengrass:network :network -
network-bind aws-iot-greengrass:network-bind :network-bind -
network-control aws-iot-greengrass:network-control :network-control -
opengl aws-iot-greengrass:opengl :opengl -
optical-drive aws-iot-greengrass:optical-drive :optical-drive -
process-control aws-iot-greengrass:process-control :process-control -
raw-usb aws-iot-greengrass:raw-usb - -
removable-media aws-iot-greengrass:removable-media - -
serial-port aws-iot-greengrass:serial-port - -
spi aws-iot-greengrass:spi - -
system-observe aws-iot-greengrass:system-observe :system-observe -
Looks like it’s complaining about the layouts used to symlink to lambda runtimes.
Even when I remove the second instance , it complains
ubuntu@ip-172-31-29-24:~$ sudo snap remove --purge aws-iot-greengrass_prime
aws-iot-greengrass_prime removed
ubuntu@ip-172-31-29-24:~$ sudo snap connect aws-iot-greengrass:hardware-observe
error: cannot perform the following tasks:
- Connect aws-iot-greengrass:hardware-observe to snapd:hardware-observe (cannot update mount namespace of snap "aws-iot-greengrass": cannot update preserved namespace of snap "aws-iot-greengrass": cannot update snap namespace: remove /usr/bin/python3.8: read-only file system)
Here’s the layout section of the yaml:
layout:
$SNAP/greengrass/config:
bind: $SNAP_DATA/user-certs/config
$SNAP/greengrass/certs:
bind: $SNAP_DATA/user-certs/certs
/usr/bin/python3.8:
symlink: $SNAP/usr/bin/python3.8
/usr/bin/python3.7:
# python3.7 lambdas will be redirected to python3.8
symlink: $SNAP/usr/bin/python3.8
$SNAP/usr/bin/python3:
symlink: $SNAP/usr/bin/python3.8
/usr/bin/python2.7:
symlink: $SNAP/usr/bin/python2.7
$SNAP/usr/bin/python:
symlink: $SNAP/usr/bin/python2.7
/usr/bin/nodejs12.x:
symlink: $SNAP/wrapper-scripts/exec-node.sh
/usr/bin/node:
symlink: $SNAP/node-v12.18.4-linux/bin/node
/usr/bin/java8:
symlink: $SNAP/usr/lib/jvm/java-8-openjdk-arch-symlink/jre/bin/java
/usr/bin/java:
symlink: $SNAP/usr/lib/jvm/java-8-openjdk-arch-symlink/jre/bin/java
Is there a workaround for this?
btw is there a roadmap for getting the parallel instances feature to stable? I know it’s experimental, but we’ve only experienced more and more problems.