Bug 1697704
Summary: | Null pointer exception observed while setting up remote data sync on the storage domain | ||||||
---|---|---|---|---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | SATHEESARAN <sasundar> | ||||
Component: | rhhi | Assignee: | Sahina Bose <sabose> | ||||
Status: | CLOSED ERRATA | QA Contact: | SATHEESARAN <sasundar> | ||||
Severity: | urgent | Docs Contact: | |||||
Priority: | high | ||||||
Version: | rhhiv-1.6 | CC: | godas, lbailey, rcyriac, rhs-bugs, sabose | ||||
Target Milestone: | --- | Keywords: | ZStream | ||||
Target Release: | RHHI-V 1.6.z Async Update | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | ovirt-engine-4.3.4 | Doc Type: | Known Issue | ||||
Doc Text: |
In RHHI for Virtualization 1.6, using 'Remote data sync setup' to configure geo-replication for a storage domain that was created automatically during deployment failed. This occurred because the 'GetGeoRepSessionsForStorageDomainQuery' check expected all interfaces to have an IPv4 or IPv6 address, and threw a null pointer exception when this was not the case. This issue did not occur for manually created storage domains. The check has been updated to handle cases where some host interfaces may not have addresses mapped, and this issue no longer occurs.
|
Story Points: | --- | ||||
Clone Of: | |||||||
: | 1697706 (view as bug list) | Environment: | |||||
Last Closed: | 2019-11-20 09:00:29 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | 1697706 | ||||||
Bug Blocks: | 1683647 | ||||||
Attachments: |
|
Description
SATHEESARAN
2019-04-09 03:32:40 UTC
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 |