Description of problem: ----------------------- While setting up the remote data sync setup, NPE is observed in the logs and the window to set remote-sync is actually stuck indefinitely. Version-Release number of selected component (if applicable): -------------------------------------------------------------- RHV 4.3.3 RHHI-V 1.6 How reproducible: ----------------- Always ( 100% ) Steps to Reproduce: ------------------- 1. Complete HC deployment with 3 nodes 2. Create geo-rep session from CLI on one of the node to remote site ( secondary site ) 3. Sync the geo-rep session for the corresponding volume in RHV Manager UI -> Storage -> Volumes 4. On the corresponding storage domain, click on 'Remote data sync setup' Actual results: --------------- Null Pointer Exception observed in the logs, 'remote data sync setup' window is stuck indefinitely Expected results: ----------------- No NPE and allows to setup remote data sync setup. Additional info:
2019-04-09 08:10:00,382+05 ERROR [org.ovirt.engine.core.bll.gluster.GetGeoRepSessionsForStorageDomainQuery] (default task-157) [38a90e40-f083-45e6-b145-b80f24ed0b75] Query 'GetGeoRepSessionsForStorageDomainQuery ' failed: null 2019-04-09 08:10:00,382+05 ERROR [org.ovirt.engine.core.bll.gluster.GetGeoRepSessionsForStorageDomainQuery] (default task-157) [38a90e40-f083-45e6-b145-b80f24ed0b75] Exception: java.lang.NullPointerException at org.ovirt.engine.core.bll.gluster.GetGeoRepSessionsForStorageDomainQuery.lambda$null$0(GetGeoRepSessionsForStorageDomainQuery.java:83) [bll.jar:] at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) [rt.jar:1.8.0_201] at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1359) [rt.jar:1.8.0_201] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) [rt.jar:1.8.0_201] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) [rt.jar:1.8.0_201] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [rt.jar:1.8.0_201] at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449) [rt.jar:1.8.0_201] at org.ovirt.engine.core.bll.gluster.GetGeoRepSessionsForStorageDomainQuery.lambda$executeQueryCommand$1(GetGeoRepSessionsForStorageDomainQuery.java:83) [bll.jar:] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) [rt.jar:1.8.0_201] at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1359) [rt.jar:1.8.0_201] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) [rt.jar:1.8.0_201] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) [rt.jar:1.8.0_201] at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) [rt.jar:1.8.0_201]
Created attachment 1553778 [details] engine.log
Is this an IPv6 setup? The code where it throws NPE: VDS vds = vdsList.stream() .filter(v -> v.getName().equals(hostName) || interfaceDao.getAllInterfacesForVds(v.getId()) .stream() .anyMatch(iface -> iface.getIpv4Address().equals(hostAddress))) .findFirst() .orElse(null); so does the interface have no IPv4 address?
(In reply to Sahina Bose from comment #3) > Is this an IPv6 setup? > The code where it throws NPE: > VDS vds = vdsList.stream() > .filter(v -> v.getName().equals(hostName) > || interfaceDao.getAllInterfacesForVds(v.getId()) > .stream() > .anyMatch(iface -> > iface.getIpv4Address().equals(hostAddress))) > .findFirst() > .orElse(null); > > so does the interface have no IPv4 address? I found out that this issue because of setting up 'remote data sync setup' on storage domain, that is automatically created through RHHI-V deployment and I believe it doesn't have the relevant gluster volume UUID mapped
This bug is the known_issue. Remote data sync setup can be done only on the Storage Domain that are manually created and not created automatically using RHHI-V deployment mechanism.
Fix for this bug is available with ovirt-engine-4.3.4 and the same is verified
Tested with ovirt-engine-4.3.4.3-0.1.el7.noarch and could see no NPE. So moving the bug as verified. Steps: ===== 1.Deploy HC in 3 POD, with storage domains automatically created 2.Create a geo-replication session between source and destination 3.Click on the "sync" button for the geo-replication volume 4.On the corresponding storage domain click on "Remote Data Sync Setup" No issues found, and all works smooth
CLOSING this bug as the release is already completed