|
@@ -49,16 +49,34 @@ public class FailoverController {
|
|
|
private final int rpcTimeoutToNewActive;
|
|
|
|
|
|
private final Configuration conf;
|
|
|
+ /*
|
|
|
+ * Need a copy of conf for graceful fence to set
|
|
|
+ * configurable retries for IPC client.
|
|
|
+ * Refer HDFS-3561
|
|
|
+ */
|
|
|
+ private final Configuration gracefulFenceConf;
|
|
|
|
|
|
private final RequestSource requestSource;
|
|
|
|
|
|
public FailoverController(Configuration conf,
|
|
|
RequestSource source) {
|
|
|
this.conf = conf;
|
|
|
+ this.gracefulFenceConf = new Configuration(conf);
|
|
|
this.requestSource = source;
|
|
|
|
|
|
this.gracefulFenceTimeout = getGracefulFenceTimeout(conf);
|
|
|
this.rpcTimeoutToNewActive = getRpcTimeoutToNewActive(conf);
|
|
|
+
|
|
|
+ //Configure less retries for graceful fence
|
|
|
+ int gracefulFenceConnectRetries = conf.getInt(
|
|
|
+ CommonConfigurationKeys.HA_FC_GRACEFUL_FENCE_CONNECTION_RETRIES,
|
|
|
+ CommonConfigurationKeys.HA_FC_GRACEFUL_FENCE_CONNECTION_RETRIES_DEFAULT);
|
|
|
+ gracefulFenceConf.setInt(
|
|
|
+ CommonConfigurationKeys.IPC_CLIENT_CONNECT_MAX_RETRIES_KEY,
|
|
|
+ gracefulFenceConnectRetries);
|
|
|
+ gracefulFenceConf.setInt(
|
|
|
+ CommonConfigurationKeys.IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_KEY,
|
|
|
+ gracefulFenceConnectRetries);
|
|
|
}
|
|
|
|
|
|
static int getGracefulFenceTimeout(Configuration conf) {
|
|
@@ -150,7 +168,7 @@ public class FailoverController {
|
|
|
boolean tryGracefulFence(HAServiceTarget svc) {
|
|
|
HAServiceProtocol proxy = null;
|
|
|
try {
|
|
|
- proxy = svc.getProxy(conf, gracefulFenceTimeout);
|
|
|
+ proxy = svc.getProxy(gracefulFenceConf, gracefulFenceTimeout);
|
|
|
proxy.transitionToStandby(createReqInfo());
|
|
|
return true;
|
|
|
} catch (ServiceFailedException sfe) {
|