This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 46165dc9ba4 HBASE-27660 Ignore invalid hostname when
getNetworkInterfaces (#5052)
46165dc9ba4 is described below
commit 46165dc9ba4674769194de8e48511c16b1534b2a
Author: tianhang <[email protected]>
AuthorDate: Mon Feb 27 20:11:42 2023 +0800
HBASE-27660 Ignore invalid hostname when getNetworkInterfaces (#5052)
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit 4bee21e96b45422cf3e485d3cf12a0935cd8d6e9)
---
.../regionserver/TestRegionServerHostname.java | 23 +++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java
index 4ec4a359846..3e4269a6d27 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
import java.net.InetAddress;
import java.net.NetworkInterface;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Locale;
@@ -90,9 +91,7 @@ public class TestRegionServerHostname {
@Test
public void testRegionServerHostname() throws Exception {
- Enumeration<NetworkInterface> netInterfaceList =
NetworkInterface.getNetworkInterfaces();
- while (netInterfaceList.hasMoreElements()) {
- NetworkInterface ni = netInterfaceList.nextElement();
+ for (NetworkInterface ni : getValidNetworkInterfaces()) {
Enumeration<InetAddress> addrList = ni.getInetAddresses();
// iterate through host addresses and use each as hostname
while (addrList.hasMoreElements()) {
@@ -209,4 +208,22 @@ public class TestRegionServerHostname {
assertEquals(expectedRS, servers.size());
}
}
+
+ private boolean ignoreNetworkInterface(NetworkInterface networkInterface)
throws Exception {
+ return networkInterface == null || networkInterface.isLoopback() ||
networkInterface.isVirtual()
+ || !networkInterface.isUp();
+ }
+
+ private List<NetworkInterface> getValidNetworkInterfaces() throws Exception {
+ List<NetworkInterface> validNetworkInterfaces = new ArrayList<>();
+ Enumeration<NetworkInterface> interfaces =
NetworkInterface.getNetworkInterfaces();
+ while (interfaces.hasMoreElements()) {
+ NetworkInterface networkInterface = interfaces.nextElement();
+ if (ignoreNetworkInterface(networkInterface)) {
+ continue;
+ }
+ validNetworkInterfaces.add(networkInterface);
+ }
+ return validNetworkInterfaces;
+ }
}