YARN-8399. NodeManager is giving 403 GSS exception post upgrade to 3.1 in secure mode. Contributed by Sunil Govindan.
This commit is contained in:
parent
9654dd1f47
commit
58bc34f1e3
|
@ -262,7 +262,7 @@ public class AuxServices extends AbstractService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = AuxiliaryServiceWithCustomClassLoader.getInstance(
|
s = AuxiliaryServiceWithCustomClassLoader.getInstance(
|
||||||
conf, className, dest.toString());
|
new Configuration(conf), className, dest.toString());
|
||||||
}
|
}
|
||||||
LOG.info("The aux service:" + sName
|
LOG.info("The aux service:" + sName
|
||||||
+ " are using the custom classloader");
|
+ " are using the custom classloader");
|
||||||
|
@ -273,7 +273,7 @@ public class AuxServices extends AbstractService
|
||||||
if (sClass == null) {
|
if (sClass == null) {
|
||||||
throw new RuntimeException("No class defined for " + sName);
|
throw new RuntimeException("No class defined for " + sName);
|
||||||
}
|
}
|
||||||
s = ReflectionUtils.newInstance(sClass, conf);
|
s = ReflectionUtils.newInstance(sClass, new Configuration(conf));
|
||||||
}
|
}
|
||||||
if (s == null) {
|
if (s == null) {
|
||||||
throw new RuntimeException("No object created for " + sName);
|
throw new RuntimeException("No object created for " + sName);
|
||||||
|
@ -294,7 +294,7 @@ public class AuxServices extends AbstractService
|
||||||
stateStoreFs.mkdirs(storePath, storeDirPerms);
|
stateStoreFs.mkdirs(storePath, storeDirPerms);
|
||||||
s.setRecoveryPath(storePath);
|
s.setRecoveryPath(storePath);
|
||||||
}
|
}
|
||||||
s.init(conf);
|
s.init(new Configuration(conf));
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
LOG.error("Failed to initialize " + sName, e);
|
LOG.error("Failed to initialize " + sName, e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
|
@ -678,4 +678,52 @@ public class TestAuxServices {
|
||||||
super("RecoverableServiceB", "Bsrv");
|
super("RecoverableServiceB", "Bsrv");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class ConfChangeAuxService extends AuxiliaryService
|
||||||
|
implements Service {
|
||||||
|
|
||||||
|
ConfChangeAuxService() {
|
||||||
|
super("ConfChangeAuxService");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void serviceInit(Configuration conf) throws Exception {
|
||||||
|
conf.set("dummyConfig", "changedTestValue");
|
||||||
|
super.serviceInit(conf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initializeApplication(
|
||||||
|
ApplicationInitializationContext initAppContext) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stopApplication(ApplicationTerminationContext stopAppContext) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ByteBuffer getMetaData() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAuxServicesConfChange() {
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
conf.setStrings(YarnConfiguration.NM_AUX_SERVICES,
|
||||||
|
new String[]{"ConfChangeAuxService"});
|
||||||
|
conf.setClass(String.format(YarnConfiguration.NM_AUX_SERVICE_FMT,
|
||||||
|
"ConfChangeAuxService"), ConfChangeAuxService.class, Service.class);
|
||||||
|
AuxServices aux = new AuxServices(MOCK_AUX_PATH_HANDLER, MOCK_CONTEXT,
|
||||||
|
MOCK_DEL_SERVICE);
|
||||||
|
conf.set("dummyConfig", "testValue");
|
||||||
|
aux.init(conf);
|
||||||
|
aux.start();
|
||||||
|
for (AuxiliaryService s : aux.getServices()) {
|
||||||
|
assertEquals(STARTED, s.getServiceState());
|
||||||
|
assertEquals(conf.get("dummyConfig"), "testValue");
|
||||||
|
}
|
||||||
|
|
||||||
|
aux.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue