Skip to content

Commit fe30be5

Browse files
committed
YARN-11435. [Router] FederationStateStoreFacade is not reinitialized with Router conf.
1 parent 7368226 commit fe30be5

39 files changed

Lines changed: 63 additions & 50 deletions

File tree

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestFederationRMFailoverProxyProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public void setUp() throws IOException, YarnException {
7777

7878
stateStore = spy(new MemoryFederationStateStore());
7979
stateStore.init(conf);
80-
FederationStateStoreFacade.getInstance().reinitialize(stateStore, conf);
80+
FederationStateStoreFacade.getInstance(conf).reinitialize(stateStore, conf);
8181
verify(stateStore, times(0))
8282
.getSubClusters(any(GetSubClustersInfoRequest.class));
8383
}
@@ -180,7 +180,7 @@ public void run() {
180180
.getSubClusters(any(GetSubClustersInfoRequest.class));
181181

182182
// Force flush cache, so that it will pick up the new RM address
183-
FederationStateStoreFacade.getInstance().getSubCluster(subClusterId,
183+
FederationStateStoreFacade.getInstance(conf).getSubCluster(subClusterId,
184184
true);
185185
}
186186

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/failover/FederationRMFailoverProxyProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void init(Configuration configuration, RMProxy<T> proxy,
7676
String clusterId = configuration.get(YarnConfiguration.RM_CLUSTER_ID);
7777
Preconditions.checkNotNull(clusterId, "Missing RM ClusterId");
7878
this.subClusterId = SubClusterId.newInstance(clusterId);
79-
this.facade = FederationStateStoreFacade.getInstance();
79+
this.facade = FederationStateStoreFacade.getInstance(configuration);
8080
if (configuration instanceof YarnConfiguration) {
8181
this.conf = (YarnConfiguration) configuration;
8282
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/utils/FederationStateStoreFacade.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ public final class FederationStateStoreFacade {
105105
private static final Logger LOG =
106106
LoggerFactory.getLogger(FederationStateStoreFacade.class);
107107

108-
private static final FederationStateStoreFacade FACADE =
109-
new FederationStateStoreFacade();
108+
private static FederationStateStoreFacade FACADE;
110109

111110
private static Random rand = new Random(System.currentTimeMillis());
112111

@@ -115,8 +114,8 @@ public final class FederationStateStoreFacade {
115114
private SubClusterResolver subclusterResolver;
116115
private FederationCache federationCache;
117116

118-
private FederationStateStoreFacade() {
119-
initializeFacadeInternal(new Configuration());
117+
private FederationStateStoreFacade(Configuration conf) {
118+
initializeFacadeInternal(conf);
120119
}
121120

122121
private void initializeFacadeInternal(Configuration config) {
@@ -198,7 +197,18 @@ public static RetryPolicy createRetryPolicy(Configuration conf) {
198197
*
199198
* @return the singleton {@link FederationStateStoreFacade} instance
200199
*/
201-
public static FederationStateStoreFacade getInstance() {
200+
public static FederationStateStoreFacade getInstance(Configuration conf) {
201+
if(FACADE == null) {
202+
synchronized (FederationStateStoreFacade.class) {
203+
if (FACADE == null) {
204+
Configuration yarnConf = new Configuration();
205+
if (conf == null) {
206+
yarnConf = conf;
207+
}
208+
FACADE = new FederationStateStoreFacade(yarnConf);
209+
}
210+
}
211+
}
202212
return FACADE;
203213
}
204214

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/cache/TestFederationCache.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,14 @@ public static Collection<Class[]> getParameters() {
6060
private Configuration conf;
6161
private FederationStateStore stateStore;
6262
private FederationStateStoreTestUtil stateStoreTestUtil;
63-
private FederationStateStoreFacade facade = FederationStateStoreFacade.getInstance();
63+
private FederationStateStoreFacade facade;
6464

6565
public TestFederationCache(Class cacheClassName) {
6666
conf = new Configuration();
6767
conf.setInt(YarnConfiguration.FEDERATION_CACHE_TIME_TO_LIVE_SECS, 1);
6868
conf.setClass(YarnConfiguration.FEDERATION_FACADE_CACHE_CLASS,
6969
cacheClassName, FederationCache.class);
70+
facade = FederationStateStoreFacade.getInstance(conf);
7071
}
7172

7273
@Before

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/policies/BaseFederationPoliciesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,9 @@ public String generateClusterMetricsInfo(int id) {
212212
public FederationStateStoreFacade getMemoryFacade() throws YarnException {
213213

214214
// setting up a store and its facade (with caching off)
215-
FederationStateStoreFacade fedFacade = FederationStateStoreFacade.getInstance();
216215
YarnConfiguration conf = new YarnConfiguration();
217216
conf.setInt(YarnConfiguration.FEDERATION_CACHE_TIME_TO_LIVE_SECS, 0);
217+
FederationStateStoreFacade fedFacade = FederationStateStoreFacade.getInstance(conf);
218218
FederationStateStore store = new MemoryFederationStateStore();
219219
store.init(conf);
220220
fedFacade.reinitialize(store, conf);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/policies/TestRouterPolicyFacade.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,9 @@ public class TestRouterPolicyFacade {
6262
public void setup() throws YarnException {
6363

6464
// setting up a store and its facade (with caching off)
65-
FederationStateStoreFacade fedFacade =
66-
FederationStateStoreFacade.getInstance();
6765
YarnConfiguration conf = new YarnConfiguration();
6866
conf.set(YarnConfiguration.FEDERATION_CACHE_TIME_TO_LIVE_SECS, "0");
67+
FederationStateStoreFacade fedFacade = FederationStateStoreFacade.getInstance(conf);
6968
store = new MemoryFederationStateStore();
7069
store.init(conf);
7170
fedFacade.reinitialize(store, conf);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/utils/FederationPoliciesTestUtil.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public static void initializePolicyContext(
123123
fpc.setSubClusterPolicyConfiguration(SubClusterPolicyConfiguration
124124
.newInstance("queue1", policy.getClass().getCanonicalName(), buf));
125125
FederationStateStoreFacade facade = FederationStateStoreFacade
126-
.getInstance();
126+
.getInstance(conf);
127127
FederationStateStore fss = mock(FederationStateStore.class);
128128

129129
if (activeSubclusters == null) {
@@ -186,7 +186,8 @@ public static FederationPolicyInitializationContext initializePolicyContext2(
186186
.newInstance("queue1", policy.getClass().getCanonicalName(), buf));
187187

188188
if (fpc.getFederationStateStoreFacade() == null) {
189-
FederationStateStoreFacade facade = FederationStateStoreFacade.getInstance();
189+
FederationStateStoreFacade facade =
190+
FederationStateStoreFacade.getInstance(new Configuration());
190191
FederationStateStore fss = mock(FederationStateStore.class);
191192

192193
if (activeSubClusters == null) {
@@ -244,7 +245,7 @@ public static FederationStateStoreFacade initFacade(
244245
List<SubClusterInfo> subClusterInfos, SubClusterPolicyConfiguration
245246
policyConfiguration) throws YarnException {
246247
FederationStateStoreFacade goodFacade = FederationStateStoreFacade
247-
.getInstance();
248+
.getInstance(new Configuration());
248249
FederationStateStore fss = mock(FederationStateStore.class);
249250
GetSubClustersInfoResponse response = GetSubClustersInfoResponse
250251
.newInstance(subClusterInfos);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/main/java/org/apache/hadoop/yarn/server/globalpolicygenerator/GlobalPolicyGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ protected void initAndStart(Configuration conf, boolean hasToReboot) {
112112
@Override
113113
protected void serviceInit(Configuration conf) throws Exception {
114114
// Set up the context
115-
this.gpgContext.setStateStoreFacade(FederationStateStoreFacade.getInstance());
115+
this.gpgContext.setStateStoreFacade(FederationStateStoreFacade.getInstance(conf));
116116
GPGPolicyFacade gpgPolicyFacade =
117117
new GPGPolicyFacade(this.gpgContext.getStateStoreFacade(), conf);
118118
this.gpgContext.setPolicyFacade(gpgPolicyFacade);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/TestGPGPolicyFacade.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ public class TestGPGPolicyFacade {
5353

5454
private Configuration conf;
5555
private FederationStateStore stateStore;
56-
private FederationStateStoreFacade facade =
57-
FederationStateStoreFacade.getInstance();
56+
private FederationStateStoreFacade facade;
5857
private GPGPolicyFacade policyFacade;
5958

6059
private Set<SubClusterId> subClusterIds;
@@ -70,6 +69,7 @@ public TestGPGPolicyFacade() {
7069
subClusterIds.add(SubClusterId.newInstance("sc0"));
7170
subClusterIds.add(SubClusterId.newInstance("sc1"));
7271
subClusterIds.add(SubClusterId.newInstance("sc2"));
72+
facade = FederationStateStoreFacade.getInstance(conf);
7373
}
7474

7575
@Before

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-globalpolicygenerator/src/test/java/org/apache/hadoop/yarn/server/globalpolicygenerator/policygenerator/TestPolicyGenerator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,7 @@ public class TestPolicyGenerator {
8787

8888
private Configuration conf;
8989
private FederationStateStore stateStore;
90-
private FederationStateStoreFacade facade =
91-
FederationStateStoreFacade.getInstance();
90+
private FederationStateStoreFacade facade;
9291

9392
private List<SubClusterId> subClusterIds;
9493
private Map<SubClusterId, SubClusterInfo> subClusterInfos;
@@ -102,10 +101,11 @@ public class TestPolicyGenerator {
102101
public TestPolicyGenerator() {
103102
conf = new Configuration();
104103
conf.setInt(YarnConfiguration.FEDERATION_CACHE_TIME_TO_LIVE_SECS, 0);
105-
104+
facade = FederationStateStoreFacade.getInstance(conf);
106105
gpgContext = new GPGContextImpl();
107106
gpgContext.setPolicyFacade(new GPGPolicyFacade(facade, conf));
108107
gpgContext.setStateStoreFacade(facade);
108+
109109
}
110110

111111
@Before

0 commit comments

Comments
 (0)