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

Abierto
#14,520 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
54/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
java

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
7 d 16 h
PR fusionados (30 d)
15

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/cloudstack

Todos los issues de apache/cloudstack

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.