Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error accessing VM after launch; state is always unknown #3633

Open
skoech opened this issue Aug 10, 2024 · 8 comments
Open

Error accessing VM after launch; state is always unknown #3633

skoech opened this issue Aug 10, 2024 · 8 comments
Labels

Comments

@skoech
Copy link

skoech commented Aug 10, 2024

Describe the bug
After setting up a VM from the charm-dev blueprint using Multipass and successfully launching it as per the Juju tutorial, I am unable to access it.

To Reproduce
I tried opening a shell into the instance like this:
1.

$ multipass shell my-juju-vm
shell failed: Cannot retrieve credentials in unknown state

The instance exists but in an unknown state:
2.

$ multipass list
Name                    State             IPv4             Image
my-juju-vm              Unknown           --               Ubuntu 22.04 LTS

Expected behaviour
Something like this:

$ multipass shell my-juju-vm
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-100-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

  System information as of Mon Mar 18 17:11:59 CET 2024

  System load:  0.0               Processes:             117
  Usage of /:   5.6% of 28.89GB   Users logged in:       1
  Memory usage: 3%                IPv4 address for ens3: 10.238.98.63
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

16 updates can be applied immediately.
1 of these updates is a standard security update.
To see these additional updates run: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


Last login: Mon Mar 18 16:09:16 2024 from 10.238.98.1
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Logs

Ago 05 17:21:12 skoech systemd[1]: Started Service for snap application multipa>
Ago 05 17:21:13 skoech multipassd[83385]: Unable to determine subnet for the mp>
Ago 05 17:21:13 skoech multipassd[83385]: Using AppArmor support
Ago 05 17:21:13 skoech multipassd[83385]: Starting dnsmasq
Ago 05 17:21:13 skoech multipassd[83385]: Applied AppArmor policy: multipass.dn>
Ago 05 17:21:13 skoech multipassd[83385]: [83514] started: dnsmasq --keep-in-fo>
Ago 05 17:21:13 skoech dnsmasq[83514]: started, version 2.90 cachesize 150
Ago 05 17:21:13 skoech dnsmasq[83514]: compile time options: IPv6 GNU-getopt DB>
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: DHCP, IP range 10.196.97.2 -- 10.19>
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: DHCP, sockets bound exclusively to >
Ago 05 17:21:13 skoech dnsmasq[83514]: using only locally-known addresses for m>
Ago 05 17:21:13 skoech dnsmasq[83514]: reading /etc/resolv.conf
Ago 05 17:21:13 skoech dnsmasq[83514]: using nameserver 127.0.0.53#53
Ago 05 17:21:13 skoech dnsmasq[83514]: using only locally-known addresses for m>
Ago 05 17:21:13 skoech dnsmasq[83514]: read /etc/hosts - 8 names
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: read /var/snap/multipass/common/dat>
Ago 05 17:21:13 skoech multipassd[83385]: [83515] started: iptables-nft --wait >
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables pre>
Ago 05 17:21:13 skoech multipassd[83385]: Using iptables-nft for firewall rules.
Ago 05 17:21:13 skoech multipassd[83385]: [83516] started: iptables-nft --wait >
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables pre>
Ago 05 17:21:13 skoech multipassd[83385]: [83517] started: iptables-nft --wait >
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables pre>
lines 1-23...skipping...
Ago 05 17:21:12 skoech systemd[1]: Started Service for snap application multipass.multipassd.
Ago 05 17:21:13 skoech multipassd[83385]: Unable to determine subnet for the mpqemubr0 subnet
Ago 05 17:21:13 skoech multipassd[83385]: Using AppArmor support
Ago 05 17:21:13 skoech multipassd[83385]: Starting dnsmasq
Ago 05 17:21:13 skoech multipassd[83385]: Applied AppArmor policy: multipass.dnsmasq
Ago 05 17:21:13 skoech multipassd[83385]: [83514] started: dnsmasq --keep-in-foreground --strict-order --bind-interfaces --pid-file --domain=multipass --local=/multipass/ --except-interface=lo --interface=mpq>
Ago 05 17:21:13 skoech dnsmasq[83514]: started, version 2.90 cachesize 150
Ago 05 17:21:13 skoech dnsmasq[83514]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP conntrack ipset no-nftset auth cryptohash DNSSEC loop-detect inotify dumpfile
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: DHCP, IP range 10.196.97.2 -- 10.196.97.254, lease time infinite
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: DHCP, sockets bound exclusively to interface mpqemubr0
Ago 05 17:21:13 skoech dnsmasq[83514]: using only locally-known addresses for multipass
Ago 05 17:21:13 skoech dnsmasq[83514]: reading /etc/resolv.conf
Ago 05 17:21:13 skoech dnsmasq[83514]: using nameserver 127.0.0.53#53
Ago 05 17:21:13 skoech dnsmasq[83514]: using only locally-known addresses for multipass
Ago 05 17:21:13 skoech dnsmasq[83514]: read /etc/hosts - 8 names
Ago 05 17:21:13 skoech dnsmasq-dhcp[83514]: read /var/snap/multipass/common/data/multipassd/network/dnsmasq.hosts
Ago 05 17:21:13 skoech multipassd[83385]: [83515] started: iptables-nft --wait -t filter --list-rules
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables present, use iptables-legacy to see them
Ago 05 17:21:13 skoech multipassd[83385]: Using iptables-nft for firewall rules.
Ago 05 17:21:13 skoech multipassd[83385]: [83516] started: iptables-nft --wait -t filter --list-rules
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables present, use iptables-legacy to see them
Ago 05 17:21:13 skoech multipassd[83385]: [83517] started: iptables-nft --wait -t nat --list-rules
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables present, use iptables-legacy to see them
Ago 05 17:21:13 skoech multipassd[83385]: [83518] started: iptables-nft --wait -t mangle --list-rules
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables present, use iptables-legacy to see them
Ago 05 17:21:13 skoech multipassd[83385]: [83519] started: iptables-nft --wait -t raw --list-rules
Ago 05 17:21:13 skoech multipassd[83385]: # Warning: iptables-legacy tables present, use iptables-legacy to see them
Ago 05 17:21:13 skoech multipassd[83385]: [83520] started: iptables-nft --wait -t filter --insert INPUT --in-interface mpqemubr0 --protocol udp --dport 67 --jump ACCEPT --match comment --comment generated for>
Ago 05 17:21:13 skoech multipassd[83385]: [83521] started: iptables-nft --wait -t filter --insert INPUT --in-interface mpqemubr0 --protocol udp --dport 53 --jump ACCEPT --match comment --comment generated for>
Ago 05 17:21:13 skoech multipassd[83385]: [83522] started: iptables-nft --wait -t filter --insert INPUT --in-interface mpqemubr0 --protocol tcp --dport 53 --jump ACCEPT --match comment --comment generated for>
Ago 05 17:21:13 skoech multipassd[83385]: [83523] started: iptables-nft --wait -t filter --insert OUTPUT --out-interface mpqemubr0 --protocol udp --sport 67 --jump ACCEPT --match comment --comment generated f>
Ago 05 17:21:13 skoech multipassd[83385]: [83524] started: iptables-nft --wait -t filter --insert OUTPUT --out-interface mpqemubr0 --protocol udp --sport 53 --jump ACCEPT --match comment --comment generated f>
Ago 05 17:21:13 skoech multipassd[83385]: [83526] started: iptables-nft --wait -t filter --insert OUTPUT --out-interface mpqemubr0 --protocol tcp --sport 53 --jump ACCEPT --match comment --comment generated f>
Ago 05 17:21:14 skoech multipassd[83385]: [83527] started: iptables-nft --wait -t mangle --insert POSTROUTING --out-interface mpqemubr0 --protocol udp --dport 68 --jump CHECKSUM --checksum-fill --match commen>
Ago 05 17:21:14 skoech multipassd[83385]: [83531] started: iptables-nft --wait -t nat --insert POSTROUTING --source 10.196.97.0/24 --destination 224.0.0.0/24 --jump RETURN --match comment --comment generated >
Ago 05 17:21:14 skoech multipassd[83385]: [83532] started: iptables-nft --wait -t nat --insert POSTROUTING --source 10.196.97.0/24 --destination 255.255.255.255/32 --jump RETURN --match comment --comment gene>
Ago 05 17:21:14 skoech multipassd[83385]: [83533] started: iptables-nft --wait -t nat --insert POSTROUTING --source 10.196.97.0/24 ! --destination 10.196.97.0/24 --protocol tcp --jump MASQUERADE --to-ports 10>
Ago 05 17:21:14 skoech multipassd[83385]: [83534] started: iptables-nft --wait -t nat --insert POSTROUTING --source 10.196.97.0/24 ! --destination 10.196.97.0/24 --protocol udp --jump MASQUERADE --to-ports 10>
Ago 05 17:21:14 skoech multipassd[83385]: [83535] started: iptables-nft --wait -t nat --insert POSTROUTING --source 10.196.97.0/24 ! --destination 10.196.97.0/24 --jump MASQUERADE --match comment --comment ge>
Ago 05 17:21:14 skoech multipassd[83385]: [83536] started: iptables-nft --wait -t filter --insert FORWARD --destination 10.196.97.0/24 --out-interface mpqemubr0 --match conntrack --ctstate RELATED,ESTABLISHED>
Ago 05 17:21:14 skoech multipassd[83385]: [83537] started: iptables-nft --wait -t filter --insert FORWARD --source 10.196.97.0/24 --in-interface mpqemubr0 --jump ACCEPT --match comment --comment generated for>
Ago 05 17:21:14 skoech multipassd[83385]: [83538] started: iptables-nft --wait -t filter --insert FORWARD --in-interface mpqemubr0 --out-interface mpqemubr0 --jump ACCEPT --match comment --comment generated f>
Ago 05 17:21:14 skoech multipassd[83385]: [83539] started: iptables-nft --wait -t filter --append FORWARD --in-interface mpqemubr0 --jump REJECT --reject-with icmp-port-unreachable --match comment --comment g>
Ago 05 17:21:14 skoech multipassd[83385]: [83540] started: iptables-nft --wait -t filter --append FORWARD --out-interface mpqemubr0 --jump REJECT --reject-with icmp-port-unreachable --match comment --comment >
Ago 05 17:21:15 skoech multipassd[83385]: Loading "anbox-cloud-appliance" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "charm-dev" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "docker" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "jellyfin" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "minikube" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "ros-noetic" v1
Ago 05 17:21:15 skoech multipassd[83385]: Loading "ros2-humble" v1
Ago 05 17:21:15 skoech multipassd[83385]: gRPC listening on unix:/var/snap/multipass/common/multipass_socket
Ago 05 17:21:15 skoech multipassd[83385]: fetch manifest periodically
Ago 05 17:21:15 skoech multipassd[83385]: Starting Multipass 1.14.0
Ago 05 17:21:15 skoech multipassd[83385]: Daemon arguments: /snap/multipass/13042/bin/multipassd --verbosity debug --logger platform
lines 1-55

Additional info

  • OS: Ubuntu 22.04.4 LTS
  • multipass version: 1.14.0
$ multipass info
Name:           my-juju-vm
State:          Unknown
Snapshots:      0
IPv4:           --
Release:        --
Image hash:     123e55661336 (Ubuntu 22.04 LTS)
CPU(s):         --
Load:           --
Disk usage:     --
Memory usage:   --
Mounts:         --
  • multipass get local.driver: qemu

Additional context
I've tried these suggested fixes, unsuccessfully:
#2316
#1268
#1358

@tmihoc is interested in this issue too.

@skoech skoech added bug needs triage Issue needs to be triaged labels Aug 10, 2024
@jgarciacloudbees
Copy link

I just performed a fresh install of Ubuntu 22.04 + installing multipass and also facing this issue.

 cat /etc/os-release 
  PRETTY_NAME="Ubuntu 22.04.4 LTS"
  NAME="Ubuntu"
  VERSION_ID="22.04"
  VERSION="22.04.4 LTS (Jammy Jellyfish)"
  VERSION_CODENAME=jammy

multipass --version
  multipass   1.14.0
  multipassd  1.14.0

multipass get local.driver
  qemu

multipass launch --name "latest" -c 2 -m 6G --disk 20G

multipass info
  Name:           latest
  State:          Unknown
  Snapshots:      0
  IPv4:           --
  Release:        --
  Image hash:     dd8b691b3f0d (Ubuntu 24.04 LTS)
  CPU(s):         --
  Load:           --
  Disk usage:     --
  Memory usage:   --
  Mounts:         --

@SprantaSplunk
Copy link

having the same issue!, seems to be a bug in the current version?!

@sharder996
Copy link
Contributor

Hi @skoech, sorry for the late reply. Would you be able to provide logs specifically around launching or starting a vm? The above logs are from just the Multipass daemon starting up and don't tell anything about the operation of the vm.

@sharder996 sharder996 removed the needs triage Issue needs to be triaged label Sep 20, 2024
@skoech
Copy link
Author

skoech commented Oct 31, 2024

Hi @sharder996, how do I find these logs?

@sharder996
Copy link
Contributor

Just run the offending Multipass command and then check the log for new entries. Or, running the offending Multipass command with the -vvvv option will print some logs to stdout.

@yinchi
Copy link

yinchi commented Nov 21, 2024

I have a similar problem, my log is as follows:

$ multipass start -vvvv ycc39
[2024-11-21T11:07:37.045] [trace] [daemon] Loading AppArmor policy:

#include <tunables/global>
profile multipass.ycc39.qemu-system-x86_64 flags=(attach_disconnected) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  # required for reading disk images
  capability dac_override,
  capability dac_read_search,
  capability chown,

  # Enables modifying of file ownership and permissions
  capability fsetid,
  capability fowner,

  # needed to drop privileges
  capability setgid,
  capability setuid,

  network inet stream,
  network inet6 stream,

  # Allow multipassd send qemu signals
  signal (receive) peer=snap.multipass.multipassd,

  /dev/net/tun rw,
  /dev/kvm rw,
  /dev/ptmx rw,
  /dev/kqemu rw,
  @{PROC}/*/status r,
  # When qemu is signaled to terminate, it will read cmdline of signaling
  # process for reporting purposes. Allowing read access to a process
  # cmdline may leak sensitive information embedded in the cmdline.
  @{PROC}/@{pid}/cmdline r,
  # Per man(5) proc, the kernel enforces that a thread may
  # only modify its comm value or those in its thread group.
  owner @{PROC}/@{pid}/task/@{tid}/comm rw,
  @{PROC}/sys/kernel/cap_last_cap r,
  owner @{PROC}/*/auxv r,
  @{PROC}/sys/vm/overcommit_memory r,

  # access to firmware's etc (selectively chosen for multipass' usage)
  /snap/multipass/13666/qemu/* r,

  # for save and resume
  /{usr/,}bin/dash rmix,
  /{usr/,}bin/dd rmix,
  /{usr/,}bin/cat rmix,

  # to execute bridge helper
  /snap/multipass/13666/bin/bridge_helper,

  # for restore
  /{usr/,}bin/bash rmix,

  # for file-posix getting limits since 9103f1ce
  /sys/devices/**/block/*/queue/max_segments r,

  # for gathering information about available host resources
  /sys/devices/system/cpu/ r,
  /sys/devices/system/node/ r,
  /sys/devices/system/node/node[0-9]*/meminfo r,
  /sys/module/vhost/parameters/max_mem_regions r,

  # binary and its libs
  /snap/multipass/13666/usr/bin/qemu-system-x86_64 ixr,
  /snap/multipass/13666/{,usr/}lib/{,@{multiarch}/}{,**/}*.so* rm,

  # CLASSIC ONLY: need to specify required libs from core snap
  /{,var/lib/snapd/}snap/core18/*/{,usr/}lib/@{multiarch}/{,**/}*.so* rm,

  # Disk images
  /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/ubuntu-24.04-server-cloudimg-amd64.img rwk,  # QCow2 filesystem image
  /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/cloud-init-config.iso rk,   # cloud-init ISO

  # allow full access just to user-specified mount directories on the host
  
}
    
[2024-11-21T11:07:37.045] [warning] [apparmor] Failed to load AppArmor policy 
#include <tunables/global>
profile multipass.ycc39.qemu-system-x86_64 flags=(attach_disconnected) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  # required for reading disk images
  capability dac_override,
  capability dac_read_search,
  capability chown,

  # Enables modifying of file ownership and permissions
  capability fsetid,
  capability fowner,

  # needed to drop privileges
  capability setgid,
  capability setuid,

  network inet stream,
  network inet6 stream,

  # Allow multipassd send qemu signals
  signal (receive) peer=snap.multipass.multipassd,

  /dev/net/tun rw,
  /dev/kvm rw,
  /dev/ptmx rw,
  /dev/kqemu rw,
  @{PROC}/*/status r,
  # When qemu is signaled to terminate, it will read cmdline of signaling
  # process for reporting purposes. Allowing read access to a process
  # cmdline may leak sensitive information embedded in the cmdline.
  @{PROC}/@{pid}/cmdline r,
  # Per man(5) proc, the kernel enforces that a thread may
  # only modify its comm value or those in its thread group.
  owner @{PROC}/@{pid}/task/@{tid}/comm rw,
  @{PROC}/sys/kernel/cap_last_cap r,
  owner @{PROC}/*/auxv r,
  @{PROC}/sys/vm/overcommit_memory r,

  # access to firmware's etc (selectively chosen for multipass' usage)
  /snap/multipass/13666/qemu/* r,

  # for save and resume
  /{usr/,}bin/dash rmix,
  /{usr/,}bin/dd rmix,
  /{usr/,}bin/cat rmix,

  # to execute bridge helper
  /snap/multipass/13666/bin/bridge_helper,

  # for restore
  /{usr/,}bin/bash rmix,

  # for file-posix getting limits since 9103f1ce
  /sys/devices/**/block/*/queue/max_segments r,

  # for gathering information about available host resources
  /sys/devices/system/cpu/ r,
  /sys/devices/system/node/ r,
  /sys/devices/system/node/node[0-9]*/meminfo r,
  /sys/module/vhost/parameters/max_mem_regions r,

  # binary and its libs
  /snap/multipass/13666/usr/bin/qemu-system-x86_64 ixr,
  /snap/multipass/13666/{,usr/}lib/{,@{multiarch}/}{,**/}*.so* rm,

  # CLASSIC ONLY: need to specify required libs from core snap
  /{,var/lib/snapd/}snap/core18/*/{,usr/}lib/@{multiarch}/{,**/}*.so* rm,

  # Disk images
  /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/ubuntu-24.04-server-cloudimg-amd64.img rwk,  # QCow2 filesystem image
  /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/cloud-init-config.iso rk,   # cloud-init ISO

  # allow full access just to user-specified mount directories on the host
  
}
    : errno=10 ()
[2024-11-21T11:07:37.046] [debug] [ycc39] process working dir '/snap/multipass/13666/qemu'
[2024-11-21T11:07:37.046] [info] [ycc39] process program 'qemu-system-x86_64'
[2024-11-21T11:07:37.046] [info] [ycc39] process arguments '-bios, OVMF.fd, --enable-kvm, -cpu, host, -nic, tap,ifname=tap-ef2b6d13241,script=no,downscript=no,model=virtio-net-pci,mac=52:54:00:5c:d4:f7, -nic, bridge,br=br-multipass,model=virtio-net-pci,mac=02:ab:cd:ef:00:01,helper=/snap/multipass/13666/bin/bridge_helper, -device, virtio-scsi-pci,id=scsi0, -drive, file=/var/snap/multipass/common/data/multipassd/vault/instances/ycc39/ubuntu-24.04-server-cloudimg-amd64.img,if=none,format=qcow2,discard=unmap,id=hda, -device, scsi-hd,drive=hda,bus=scsi0.0, -smp, 2, -m, 2048M, -qmp, stdio, -chardev, null,id=char0, -serial, chardev:char0, -nographic, -cdrom, /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/cloud-init-config.iso'
[2024-11-21T11:07:37.051] [debug] [qemu-system-x86_64] [78912] started: qemu-system-x86_64 -nographic -dump-vmstate /tmp/multipassd.zHBZea
[2024-11-21T11:07:37.100] [info] [ycc39] process state changed to Starting
[2024-11-21T11:07:37.109] [info] [ycc39] process state changed to Running
[2024-11-21T11:07:37.109] [debug] [qemu-system-x86_64] [78916] started: qemu-system-x86_64 -bios OVMF.fd --enable-kvm -cpu host -nic tap,ifname=tap-ef2b6d13241,script=no,downscript=no,model=virtio-net-pci,mac=52:54:00:5c:d4:f7 -nic bridge,br=br-multipass,model=virtio-net-pci,mac=02:ab:cd:ef:00:01,helper=/snap/multipass/13666/bin/bridge_helper -device virtio-scsi-pci,id=scsi0 -drive file=/var/snap/multipass/common/data/multipassd/vault/instances/ycc39/ubuntu-24.04-server-cloudimg-amd64.img,if=none,format=qcow2,discard=unmap,id=hda -device scsi-hd,drive=hda,bus=scsi0.0 -smp 2 -m 2048M -qmp stdio -chardev null,id=char0 -serial chardev:char0 -nographic -cdrom /var/snap/multipass/common/data/multipassd/vault/instances/ycc39/cloud-init-config.iso
[2024-11-21T11:07:37.109] [info] [ycc39] process started
start failed: The following errors occurred:
ycc39: timed out waiting for response

The odd thing is, I can ssh into the VM just find, it's only Multipass that can't detect the state.

@sharder996
Copy link
Contributor

Hi @yinchi, would you be able to open a new GitHub issue with all the specified information? We would be able to better diagnose your issue that way.

@yinchi
Copy link

yinchi commented Nov 23, 2024

Hi @sharder996, created #3790 (details may be slightly different as I ran everything again).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants