From c83fe4491731c994a4867759d80db31d9c1cab60 Mon Sep 17 00:00:00 2001 From: Robert Kanter Date: Fri, 1 Dec 2017 12:18:13 -0800 Subject: [PATCH] YARN-4813. TestRMWebServicesDelegationTokenAuthentication.testDoAs fails intermittently (grepas via rkanter) --- ...MWebServicesDelegationTokenAuthentication.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokenAuthentication.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokenAuthentication.java index b406fdbf0e..41e56ae7b4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokenAuthentication.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokenAuthentication.java @@ -76,6 +76,8 @@ public class TestRMWebServicesDelegationTokenAuthentication { TestRMWebServicesDelegationTokenAuthentication.class.getName() + "-root"); private static File httpSpnegoKeytabFile = new File( KerberosTestUtils.getKeytabFile()); + private static final String SUN_SECURITY_KRB5_RCACHE_KEY = + "sun.security.krb5.rcache"; private static String httpSpnegoPrincipal = KerberosTestUtils .getServerPrincipal(); @@ -83,7 +85,7 @@ public class TestRMWebServicesDelegationTokenAuthentication { private static boolean miniKDCStarted = false; private static MiniKdc testMiniKDC; private static MockRM rm; - + private static String sunSecurityKrb5RcacheValue; String delegationTokenHeader; @@ -98,6 +100,11 @@ public class TestRMWebServicesDelegationTokenAuthentication { @BeforeClass public static void setUp() { try { + // Disabling kerberos replay cache to avoid "Request is a replay" errors + // caused by frequent webservice calls + sunSecurityKrb5RcacheValue = + System.getProperty(SUN_SECURITY_KRB5_RCACHE_KEY); + System.setProperty(SUN_SECURITY_KRB5_RCACHE_KEY, "none"); testMiniKDC = new MiniKdc(MiniKdc.createConf(), testRootDir); setupKDC(); setupAndStartRM(); @@ -114,6 +121,12 @@ public static void tearDown() { if (rm != null) { rm.stop(); } + if (sunSecurityKrb5RcacheValue == null) { + System.clearProperty(SUN_SECURITY_KRB5_RCACHE_KEY); + } else { + System.setProperty(SUN_SECURITY_KRB5_RCACHE_KEY, + sunSecurityKrb5RcacheValue); + } } @Parameterized.Parameters