SLIDER-1259 Slider does not work in multi homed environments. It now uses the value of yarn.nodemanager.bind-host to set the hostname, if set
Contributed by Steve Loughran.
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index c12fae8..b416bed 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -1678,7 +1678,16 @@
protobufRelay);
int port = getPortToRequest();
- InetSocketAddress rpcAddress = new InetSocketAddress("0.0.0.0", port);
+
+ // use the same host and address options as the NM
+ InetSocketAddress rpcAddress = getConfig().getSocketAddr(
+ YarnConfiguration.NM_BIND_HOST,
+ YarnConfiguration.NM_ADDRESS,
+ "0.0.0.0:" + port,
+ port);
+ // but force in the desired port, irrespective of the value
+ // in the configuration fields.
+ rpcAddress = new InetSocketAddress(rpcAddress.getAddress(), port);
rpcService =
new WorkflowRpcService("SliderRPC",
RpcBinder.createProtobufServer(rpcAddress, getConfig(),