KVM: after "Out of band VM power on" the guest NICs keep broadcast_uri NULL and live migration fails

Aberta
#14,520 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
54/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
java

Direção de pesquisa

Start by tracing the KVM agent's handling of an out-of-band VM power-on and compare it with the normal VM start path that restores guest NIC broadcast URIs. Check how the NIC and network broadcast_uri values are updated, then add or adapt coverage for this recovery path. Done means the NIC URI is restored after the event and the reported live migration succeeds without rebooting or stopping the VM.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug component:kvm
Problem

If a KVM host agent stops responding while its VMs keep running, the host is declared Down and its VMs are marked Stopped. At that point nics.broadcast_uri of their guest NICs is NULL. When the agent comes back, the VMs are set to Running again (event "Out of band VM power on"), but nics.broadcast_uri stays NULL while the network still has its VLAN (networks.broadcast_uri vlan://).

The VMs keep working on their current host. A live migration of such a router or VM to another host is refused. The destination does not create the per-VLAN bridge, and libvirt fails with:

Exception during migrate: org.libvirt.LibvirtException: Cannot get interface MTU on 'breth1-<vlan>': No such device

Management server log, for the router and the VM:

2026-10-28 16:01:36,967 ERROR [c.c.v.ClusteredVirtualMachineManagerImpl] (Work-Job-Executor-28:[ctx-8e0f9702, job-152/job-153, ctx-152e1c05]) (logid:26e1c1f1) Migration command failed for VM r-18-VM on source host id=2 to destination host 1: Exception during migrate: org.libvirt.LibvirtException: Cannot get interface MTU on 'breth1-1658': No such device
2026-10-28 16:01:38,925 ERROR [c.c.v.ClusteredVirtualMachineManagerImpl] (Work-Job-Executor-29:[ctx-33afcd90, job-154/job-155, ctx-f4ba8d18]) (logid:3191a0e1) Migration command failed for VM i-2-17-VM on source host id=2 to destination host 1: Exception during migrate: org.libvirt.LibvirtException: Cannot get interface MTU on 'breth1-1658': No such device

The VMs stay on the source host and keep their network. A router reboot or a VM stop/start fills broadcast_uri again, and migration then works. Until then, the VMs cannot be moved off the host, for example for host maintenance.

Versions
  • CloudStack: 4.22.1.1 (management server and KVM agents).
  • Hypervisor: KVM on Oracle Linux 9, libvirt 9.0.0, two hosts in one cluster.
  • Network: advanced zone, Linux bridge (per-VLAN bridges breth1-), isolated network with a VLAN, virtual router. The router service offering has HA disabled and the VM is not HA-enabled, so nothing is restarted while the host is Down.
  • Storage: NFS primary storage.
The steps to reproduce the bug
  1. Two KVM hosts (host 1, host 2) in one cluster. Isolated network N with a VLAN. Its router (service offering without HA) and a VM P with one NIC on N run on host 2, VM HA not enabled. Control: migrate the router and VM P to host 1 and back. Both work.
  2. On host 2: kill -STOP . Wait until host 2 is Down (about 5 minutes). The router and VM P are shown Stopped and nics.broadcast_uri of their NICs on N is NULL; the domains are still running on host 2.
  3. kill -CONT . Host 2 comes back Up, the events show "Out of band VM power on" for both, and they are Running. nics.broadcast_uri is still NULL.
  4. Migrate the router (migrateSystemVm) and VM P (migrateVirtualMachine) to host 1. Both are refused with the error above.
  5. Reboot the router and stop/start VM P. broadcast_uri is vlan:// again and the migration works.
What to do about it?

Expected Result: after "Out of band VM power on" the guest NICs carry the network's broadcast URI again, the same as after a normal start, so the VMs can be live migrated without a reboot or stop/start.

Linguagem predominante
Java
Estrelas
3.1k
Forks
1.4k
Merge médio
7d 16h
PRs com merge (30d)
15

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/cloudstack

Todas as issues de apache/cloudstack

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.