Details
-
Sub-task
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
2.3.0
-
None
-
-
Reviewed
Description
RMProxy#INSTANCE is a non-final static field and both ServerRMProxy and ClientRMProxy set it. This leads to races as witnessed on - YARN-1482.
Sample trace:
java.lang.IllegalArgumentException: RM does not support this client protocol at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88) at org.apache.hadoop.yarn.client.ClientRMProxy.checkAllowedProtocols(ClientRMProxy.java:119) at org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider.init(ConfiguredRMFailoverProxyProvider.java:58) at org.apache.hadoop.yarn.client.RMProxy.createRMFailoverProxyProvider(RMProxy.java:158) at org.apache.hadoop.yarn.client.RMProxy.createRMProxy(RMProxy.java:88) at org.apache.hadoop.yarn.server.api.ServerRMProxy.createRMProxy(ServerRMProxy.java:56)