This is an automated email from the ASF dual-hosted git repository.
weizhou pushed a commit to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.22 by this push:
new e10c066cc14 Fix NPE during VM setup for pvlan (#12781)
e10c066cc14 is described below
commit e10c066cc14306193f4cebc63a3ec1ee07e41084
Author: Suresh Kumar Anaparti <[email protected]>
AuthorDate: Wed Apr 1 19:59:44 2026 +0530
Fix NPE during VM setup for pvlan (#12781)
* Fix NPE during VM setup for pvlan
* review comments
---
.../main/java/com/cloud/vm/UserVmManagerImpl.java | 24 +++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
index 4cb721666bd..65bd285ca90 100644
--- a/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/main/java/com/cloud/vm/UserVmManagerImpl.java
@@ -5430,7 +5430,19 @@ public class UserVmManagerImpl extends ManagerBase
implements UserVmManager, Vir
@Override
public boolean setupVmForPvlan(boolean add, Long hostId, NicProfile nic) {
- if (!nic.getBroadCastUri().getScheme().equals("pvlan")) {
+ if (nic == null) {
+ logger.warn("Skipping PVLAN setup on host {} because NIC profile
is null", hostId);
+ return false;
+ }
+
+ if (nic.getBroadCastUri() == null) {
+ logger.debug("Skipping PVLAN setup on host {} for NIC {} because
broadcast URI is null", hostId, nic);
+ return false;
+ }
+
+ String scheme = nic.getBroadCastUri().getScheme();
+ if (!"pvlan".equalsIgnoreCase(scheme)) {
+ logger.debug("Skipping PVLAN setup on host {} for NIC {} because
broadcast URI scheme is {}", hostId, nic, scheme);
return false;
}
String op = "add";
@@ -5438,11 +5450,17 @@ public class UserVmManagerImpl extends ManagerBase
implements UserVmManager, Vir
// "delete" would remove all the rules(if using ovs) related to
this vm
op = "delete";
}
- Network network = _networkDao.findById(nic.getNetworkId());
+
Host host = _hostDao.findById(hostId);
+ if (host == null) {
+ logger.warn("Host with id {} does not exist", hostId);
+ return false;
+ }
+
+ Network network = _networkDao.findById(nic.getNetworkId());
String networkTag =
_networkModel.getNetworkTag(host.getHypervisorType(), network);
PvlanSetupCommand cmd = PvlanSetupCommand.createVmSetup(op,
nic.getBroadCastUri(), networkTag, nic.getMacAddress());
- Answer answer = null;
+ Answer answer;
try {
answer = _agentMgr.send(hostId, cmd);
} catch (OperationTimedoutException e) {