snapcraft on ARM 64 - stuck at lxd
Bug Description
I have a snap for Core 22 that builds like a charm on x86. However, when I am trying to build on ARM, it fails.
I believe it gets blocked at lxd stage.
To Reproduce
You can check out the code from here:
[email protected]:skidoomanubuntu/oval-core-tools.git
Then, just snapcraft on an ARM machine
BTW, I tried a few variations. Going to multipass was not successful, neither was invoking sudo snapcraft.
Environment
I have an ARM server with 64 cores from ADLink, so I assume my system's scalability is not an issue.
uname -r: 5.4.0-155-generic
lscpu: Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 64 On-line CPU(s) list: 0-63 Thread(s) per core: 1 Core(s) per socket: 64 Socket(s): 1 NUMA node(s): 1 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 CPU max MHz: 2200.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 4 MiB L1i cache: 4 MiB L2 cache: 64 MiB NUMA node0 CPU(s): 0-63 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Retbleed: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Mitigation; CSV2, BHB Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
snapcraft.yaml
name: oval-core-tools
base: core22
version: '0.2'
summary: This snap provides basic tools for CVE Reporting on Ubuntu Core.
description: |
This snap provides basic tools for OVAL-based CVE Reporting on Ubuntu Core.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots
apps:
cvereport:
command: cvereport.sh
scan:
command: bin/snap_manifest.py
generate-from-existing-manifests:
command: bin/security_scan.py
environment:
PYTHONPATH: $SNAP/lib/python3.10/site-packages:$SNAP:$PYTHONPATH
server:
command: bin/launch.sh
daemon: simple
environment:
PYTHONPATH: $SNAP/lib/python3.10/site-packages:$SNAP:$SNAP/snap-manifests:$PYTHONPATH
parts:
snap-manifests:
plugin: python
source: ./snap-manifests
python-packages: [wheel, pyyaml, bs4, requests, html5lib, lxml, uvicorn, fastapi]
security-scan:
plugin: dump
source: ./security-scan
organize:
security_scan.py: bin/security_scan.py
launcher:
plugin: dump
source: ./bin
organize:
launch.sh: bin/launch.sh
server_info:
plugin: dump
source: ./app
organize:
main.py: app/main.py
report:
plugin: dump
source: ./report
stage-packages:
- bzip2
- curl
- jq
- libopenscap8
- wget
- xmlstarlet
stage:
- -usr/lib/*/libicuio.so.*
- -usr/lib/*/libicutest.so.*
- -usr/lib/*/libicutu.so*
- -usr/lib/*/libicui18n.so*
- -usr/lib/*/libopenscap_sce.so.*
layout:
/usr/share/openscap/schemas:
symlink: $SNAP/usr/share/openscap/schemas
# required due to oval_probe_eval chdir() logic
/usr/lib/$CRAFT_ARCH_TRIPLET/openscap:
symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/openscap
Relevant log output
sudo snapcraft --verbosity=trace
[sudo] password for adlink:
2023-11-09 17:32:02.483 Starting Snapcraft 7.5.0
2023-11-09 17:32:02.483 Logging execution to '/root/.local/state/snapcraft/log/snapcraft-20231109-173202.481662.log'
2023-11-09 17:32:02.484 Raw pre-parsed sysargs: args={'help': False, 'verbose': False, 'quiet': False, 'verbosity': 'trace', 'version': False, 'trace': False} filtered=[]
2023-11-09 17:32:02.484 Using default command: 'pack'
2023-11-09 17:32:02.484 General parsed sysargs: command='pack' args=[]
2023-11-09 17:32:02.486 Command parsed sysargs: Namespace(bind_ssh=False, build_for=None, debug=False, destructive_mode=False, directory=None, enable_developer_debug=False, enable_experimental_extensions=False, enable_experimental_plugins=False, enable_experimental_target_arch=False, enable_experimental_ua_services=False, enable_manifest=False, http_proxy=None, https_proxy=None, manifest_image_information=None, output=None, provider=None, target_arch=None, ua_token=None, use_lxd=False)
2023-11-09 17:32:02.486 lifecycle command: 'pack', arguments: Namespace(bind_ssh=False, build_for=None, debug=False, destructive_mode=False, directory=None, enable_developer_debug=False, enable_experimental_extensions=False, enable_experimental_plugins=False, enable_experimental_target_arch=False, enable_experimental_ua_services=False, enable_manifest=False, http_proxy=None, https_proxy=None, manifest_image_information=None, output=None, provider=None, target_arch=None, ua_token=None, use_lxd=False)
2023-11-09 17:32:02.486 command: pack, arguments: Namespace(bind_ssh=False, build_for=None, debug=False, destructive_mode=False, directory=None, enable_developer_debug=False, enable_experimental_extensions=False, enable_experimental_plugins=False, enable_experimental_target_arch=False, enable_experimental_ua_services=False, enable_manifest=False, http_proxy=None, https_proxy=None, manifest_image_information=None, output=None, provider=None, target_arch=None, ua_token=None, use_lxd=False)
2023-11-09 17:32:02.517 Created build plan:
build-on: arm64 build-for: arm64
2023-11-09 17:32:02.517 CPU count (from process affinity): 64
2023-11-09 17:32:02.517 Invalid SNAPCRAFT_MAX_PARALLEL_BUILD_COUNT ''
2023-11-09 17:32:02.518 Running on arm64 for arm64
2023-11-09 17:32:02.525 Checking build provider availability
2023-11-09 17:32:02.540 Retrieved snap config: {}
2023-11-09 17:32:02.540 Using default provider 'lxd' on linux system.
2023-11-09 17:32:02.702 Executing on host: lxc --project default profile show local:default
2023-11-09 17:32:02.834 Using hostname 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697'
2023-11-09 17:32:02.835 Launching instance...
2023-11-09 17:32:02.835 Executing on host: lxc remote list --format=yaml
2023-11-09 17:32:02.955 Executing on host: lxc remote add craft-com.ubuntu.cloud-buildd https://cloud-images.ubuntu.com/buildd/releases --protocol=simplestreams
2023-11-09 17:32:03.072 Remote 'craft-com.ubuntu.cloud-buildd' was successfully added.
2023-11-09 17:32:03.072 Executing on host: lxc project list local: --format=yaml
2023-11-09 17:32:03.210 Set LXD instance name to 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697'
2023-11-09 17:32:03.211 Checking for instance 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697' in project 'snapcraft' in remote 'local'
2023-11-09 17:32:03.211 Executing on host: lxc --project snapcraft list local: --format=yaml
2023-11-09 17:32:03.374 Executing on host: lxc --project snapcraft config get local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 raw.idmap
2023-11-09 17:32:03.505 Unexpected id map for 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697' (expected 'both 1000 0', got '').
2023-11-09 17:32:03.506 Cleaning incompatible instance 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697' (reason: the instance's id map ('raw.idmap') is not configured as expected).
2023-11-09 17:32:03.506 Executing on host: lxc --project snapcraft delete local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 --force
2023-11-09 17:32:05.366 Instance 'snapcraft-oval-core-tools-on-arm64-for-arm64-917697' does not exist.
2023-11-09 17:32:05.367 Set LXD instance name to 'base-instance-snapcraft-buildd-base-v10--2d55678e0339df02cd48'
2023-11-09 17:32:05.367 Checking for base instance 'base-instance-snapcraft-buildd-base-v10--2d55678e0339df02cd48' in project 'snapcraft' in remote 'local'
2023-11-09 17:32:05.367 Executing on host: lxc --project snapcraft list local: --format=yaml
2023-11-09 17:32:05.500 Base instance 'base-instance-snapcraft-buildd-base-v10--2d55678e0339df02cd48' does not exist.
2023-11-09 17:32:05.500 Creating new instance from image 'core22' from remote 'craft-com.ubuntu.cloud-buildd'.
2023-11-09 17:32:05.500 Executing on host: lxc --project snapcraft info local:
2023-11-09 17:32:05.660 Executing on host: lxc --project snapcraft launch craft-com.ubuntu.cloud-buildd:core22 local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 --config security.syscalls.intercept.mknod=true
2023-11-09 17:32:12.618 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf
2023-11-09 17:32:12.868 Executing on host: lxc --project snapcraft file push /tmp/tmphzy4i8k1 local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/craft-instance.conf --mode=0644
2023-11-09 17:32:13.014 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/craft-instance.conf
2023-11-09 17:32:13.210 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 cat /etc/os-release
2023-11-09 17:32:13.412 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf
2023-11-09 17:32:13.624 Executing on host: lxc --project snapcraft file pull local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/craft-instance.conf /root/tmpu9bjp7z_.tmp-craft/tmpi76qakk8
2023-11-09 17:32:13.770 Executing on host: lxc --project snapcraft file push /tmp/tmp5v4_y05p local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/apt/apt.conf.d/20auto-upgrades --mode=0644
2023-11-09 17:32:13.908 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/apt/apt.conf.d/20auto-upgrades
2023-11-09 17:32:14.109 Executing on host: lxc --project snapcraft file push /tmp/tmph5jpob8r local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/environment --mode=0644
2023-11-09 17:32:14.252 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/environment
2023-11-09 17:32:14.457 Waiting for environment to be ready...
2023-11-09 17:32:14.457 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 systemctl is-system-running
2023-11-09 17:32:14.664 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf
2023-11-09 17:32:14.866 Executing on host: lxc --project snapcraft file pull local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/craft-instance.conf /root/tmpg_jeyqbs.tmp-craft/tmpk_uwzpmj
2023-11-09 17:32:15.019 Executing on host: lxc --project snapcraft file push /tmp/tmpaqo2pnsh local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/craft-instance.conf --mode=0644
2023-11-09 17:32:15.167 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/craft-instance.conf
2023-11-09 17:32:15.384 Executing on host: lxc --project snapcraft file push /tmp/tmp9kld_nvf local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/hostname --mode=0644
2023-11-09 17:32:15.521 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/hostname
2023-11-09 17:32:15.733 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 hostname -F /etc/hostname
2023-11-09 17:32:15.932 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
2023-11-09 17:32:16.140 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 systemctl enable systemd-resolved
2023-11-09 17:32:16.468 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 systemctl restart systemd-resolved
2023-11-09 17:32:16.754 Executing on host: lxc --project snapcraft file push /tmp/tmpmeo91v10 local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697/etc/systemd/network/10-eth0.network --mode=0644
2023-11-09 17:32:16.901 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 chown root:root /etc/systemd/network/10-eth0.network
2023-11-09 17:32:17.097 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 systemctl enable systemd-networkd
2023-11-09 17:32:17.406 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 systemctl restart systemd-networkd
2023-11-09 17:32:17.693 Waiting for networking to be ready...
2023-11-09 17:32:17.694 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:18.144 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:23.842 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:29.289 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:34.765 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:40.237 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:45.693 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:51.130 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:32:56.593 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:33:02.049 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:33:07.539 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:33:12.993 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
2023-11-09 17:33:18.454 Executing in container: lxc --project snapcraft exec local:snapcraft-oval-core-tools-on-arm64-for-arm64-917697 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAPCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io
(from there the last command is repeated every 1-5 seconds - I let it go for 4 hours, no end in sight)
Additional context
No response
Hi @skidoomanubuntu,
We recently fixed that endless loop in snapcraft 7.5.4. With that version, snapcraft should timeout and warn about network issues.
This error occurs when the LXD container doesn't have network access. This can be caused by a VPN or Docker being installed on the same system. Do you happen to have Docker installed?