Ver Fonte

YARN-4813. TestRMWebServicesDelegationTokenAuthentication.testDoAs fails intermittently (grepas via rkanter)

Robert Kanter há 7 anos atrás
pai
commit
c83fe44917

+ 14 - 1
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 class TestRMWebServicesDelegationTokenAuthentication {
     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