This is an automated email from the ASF dual-hosted git repository. jermy pushed a commit to branch cassandra--metrics-ip6-fix-translate-ipv4 in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
commit bee30df6c584aec5e2715ee8ffc1f3364b3ef7d3 Author: Zhangmei Li <[email protected]> AuthorDate: Sun Apr 24 16:05:00 2022 +0800 Translate IPv4 to IPv6 to fix issue #1843 Change-Id: I1e04122d9e0cd7cd5986e9b33b0fad74d22c1937 --- .../backend/store/cassandra/CassandraMetrics.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java index 664b4f245..a5ef54916 100644 --- a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java +++ b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java @@ -21,6 +21,9 @@ package com.baidu.hugegraph.backend.store.cassandra; import java.io.IOException; import java.lang.management.MemoryUsage; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; import java.util.Collections; import java.util.List; import java.util.Map; @@ -295,8 +298,17 @@ public class CassandraMetrics implements BackendMetrics { Map<String, Object> hostsResults = InsertionOrderUtil.newMap(); for (Host host : hosts) { - String address = host.getAddress().getHostAddress(); - hostsResults.put(address, func.apply(address)); + InetAddress address = host.getAddress(); + String hostAddress; + if (address instanceof Inet4Address) { + hostAddress = host.getAddress().getHostAddress(); + // Translate IPv4 to IPv6 to fix issue #1843 + hostAddress = "::FFFF:" + hostAddress; + } else { + assert address instanceof Inet6Address; + hostAddress = host.getAddress().getHostAddress(); + } + hostsResults.put(hostAddress, func.apply(hostAddress)); } results.put(SERVERS, hostsResults);
