Skip to content

Commit b6f55e0

Browse files
committed
HBASE-27660 Ignore invalid hostname when getNetworkInterfaces
1 parent 22dbb7a commit b6f55e0

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.net.InetAddress;
2626
import java.net.NetworkInterface;
2727
import java.util.Enumeration;
28+
import java.util.LinkedList;
2829
import java.util.List;
2930
import java.util.Locale;
3031
import org.apache.hadoop.conf.Configuration;
@@ -89,9 +90,7 @@ public void testInvalidRegionServerHostnameAbortsServer() throws Exception {
8990

9091
@Test
9192
public void testRegionServerHostname() throws Exception {
92-
Enumeration<NetworkInterface> netInterfaceList = NetworkInterface.getNetworkInterfaces();
93-
while (netInterfaceList.hasMoreElements()) {
94-
NetworkInterface ni = netInterfaceList.nextElement();
93+
for (NetworkInterface ni : getValidNetworkInterfaces()) {
9594
Enumeration<InetAddress> addrList = ni.getInetAddresses();
9695
// iterate through host addresses and use each as hostname
9796
while (addrList.hasMoreElements()) {
@@ -205,4 +204,25 @@ public void testRegionServerHostnameReportedToMaster() throws Exception {
205204
assertEquals(expectedRS, servers.size());
206205
}
207206
}
207+
208+
private boolean ignoreNetworkInterface(NetworkInterface networkInterface) throws Exception {
209+
return networkInterface == null
210+
|| networkInterface.isLoopback()
211+
|| networkInterface.isVirtual()
212+
|| !networkInterface.isUp();
213+
}
214+
215+
216+
private List<NetworkInterface> getValidNetworkInterfaces() throws Exception {
217+
List<NetworkInterface> validNetworkInterfaces = new LinkedList<>();
218+
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
219+
while (interfaces.hasMoreElements()) {
220+
NetworkInterface networkInterface = interfaces.nextElement();
221+
if (ignoreNetworkInterface(networkInterface)) {
222+
continue;
223+
}
224+
validNetworkInterfaces.add(networkInterface);
225+
}
226+
return validNetworkInterfaces;
227+
}
208228
}

0 commit comments

Comments
 (0)