Bug 1881307

Summary: Can't update cluster's MAC pool if the cluster contain template with vNIC
Product: [oVirt] ovirt-engine Reporter: Michael Burman <mburman>
Component: BLL.NetworkAssignee: Dominik Holler <dholler>
Status: CLOSED CURRENTRELEASE QA Contact: Guy <gafik>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.4.3.3CC: bugs
Target Milestone: ovirt-4.4.3Flags: pm-rhel: ovirt-4.4+
dholler: devel_ack+
mburman: testing_ack+
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: ovirt-engine-ovirt-engine-4.4.3.4 Doc Type: Bug Fix
Doc Text:
Cause: Changing the Mac Pool of a cluster fails to check the vNICs of templates. Consequence: Changing the Mac Pool of a cluster fails, if the cluster has templates with vNICs. Fix: Changing the Mac Pool of a cluster succeeds to check the vNICs of templates. Result: Changing the Mac Pool of a cluster succeeds, even if the cluster has templates with vNICs.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-11 06:42:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Burman 2020-09-22 07:13:00 UTC
Description of problem:
Can't update cluster's MAC pool if the cluster contain template with vNIC

We get a null pointer exception when trying to update a cluster with another MAc pool range and if the cluster contain temlate with vNIC or vNICs.

2020-09-22 10:10:32,597+03 ERROR [org.ovirt.engine.core.bll.UpdateClusterCommand] (default task-44) [f1816eec-abdb-495b-840b-9098e6f3a35d] Error during ValidateFailure.: j
ava.lang.NullPointerException: element cannot be mapped to a null key
        at java.base/java.util.Objects.requireNonNull(Objects.java:246)
        at java.base/java.util.stream.Collectors.lambda$groupingBy$53(Collectors.java:1127)
        at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)

Version-Release number of selected component (if applicable):
rhvm-4.4.3.3-0.19.el8ev.noarch

How reproducible:
100%

Steps to Reproduce:
1. Have a cluster with VM and template with vNIC
2. Create new MAC pool range
3. Try to edit the cluster and assign it with new MAC pool range

Actual results:
null pointer exception in engine log

Expected results:
Must work

Additional info:
Most probably related to this patch https://gerrit.ovirt.org/#/c/98357/
The patch changed the data model, which might have introduced this bug.

Comment 2 Guy 2020-10-04 10:40:01 UTC
Verified In Version: ovirt-engine-ovirt-engine-4.4.3.5

Comment 3 Sandro Bonazzola 2020-11-11 06:42:09 UTC
This bugzilla is included in oVirt 4.4.3 release, published on November 10th 2020.

Since the problem described in this bug report should be resolved in oVirt 4.4.3 release, it has been closed with a resolution of CURRENT RELEASE.

If the solution does not work for you, please open a new bug report.