Unable to add more than 2 volumes or networks to a vm deployed from a UEFI image
- Langage dominant
- Java
- Étoiles
- 3.1k
- Forks
- 1.4k
- Merge moyen
- 6 j 19 h
- PR mergées (30 j)
- 32
Description
### problem
Unable to add more than 2 volume or network to a vm deployed from a UEFI image
### versions
ACS 4.20.1
### The steps to reproduce the bug
1. Register a UEFI image Template
https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
2. Deploy the vm by enabling UEFI secure mode in advanced settings
3. Once the vm is in running state , attach multiple volumes , Exception observed
Logs
```
2025-07-16 04:28:28,947 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Attaching device:
c6ef61d1300f442a86e5
2025-07-16 04:28:28,953 WARN [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach device to i-2-653-VM: internal error: No more available PCI slots
2025-07-16 04:28:28,953 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach volume [id: 394, uuid: c6ef61d1-300f-442a-86e5-e31f482b64ab, name: test2, path: c6ef61d1-300f-442a-86e5-e31f482b64ab], due to org.libvirt.LibvirtException: internal error: No more available PCI slots
```
4. Try to attach multiple networks, Exception observed
```
2025-07-16 04:36:02,019 DEBUG [kvm.resource.BridgeVifDriver] (AgentRequest-Handler-1:[]) (logid:) Successfully executed process [2045246] for command [/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvlan.sh -v 2144 -p eth1 -b breth1-2144 -o add ].
2025-07-16 04:36:02,021 WARN [resource.wrapper.LibvirtPlugNicCommandWrapper] (AgentRequest-Handler-1:[]) (logid:) Plug Nic failed due to org.libvirt.LibvirtException: internal error: No more available PCI slots org.libvirt.LibvirtException: internal error: No more available PCI slots
at org.libvirt.ErrorHandler.processError(Unknown Source)
at org.libvirt.ErrorHandler.processError(Unknown Source)
```
Workaround
Change the following settings on the vm after stopping
nicAdapter to e1000 or rtl813
rootDiskController to scsi or sata
https://prnt.sc/9wSS5uX0tVYX
### What to do about it?
If the Template is a UEFI enabled , Cloudstack should check if the template is UEFI enabled or not and populated the necessary settings for root disk and nic adapter
yum install libguestfs-tools
virt-inspector --format=raw -a noble-server-cloudimg-amd64.img 2>/dev/null | grep -i 'true'
virt-inspector -a AlmaLinux-8-GenericCloud-UEFI-latest.x86_64.qcow2 2>/dev/null | grep -i 'true'
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par les chemins KVMStorageProcessor et LibvirtPlugNicCommandWrapper indiqués dans les logs, puis examinez la façon dont sont sélectionnés les paramètres du disque racine et des NIC des VM UEFI. Reproduisez le problème avec l’image UEFI Noble et vérifiez que plusieurs volumes et réseaux sont attachés sans modifier les paramètres du contrôleur ou de l’adaptateur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, linux
- Domaine
- cloud, infrastructure
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100