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

未關閉
#14,520 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
54/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
java

研究方向

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.

由索引模型根據 Issue 內容生成。

描述

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.

主要語言
Java
星號
3.1k
分支
1.4k
平均合併
7 天 16 小時
30 天內合併 PR
15

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

apache/cloudstack 的其他 Issue

查看 apache/cloudstack 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。