YARN-11172. Fix TestClientRMTokens#testDelegationToken introduced by HDFS-16563. (#4408)

Regression caused by HDFS-16563; the hdfs exception text was changed, but because it was
a YARN test doing the check, Yetus didn't notice.

Contributed by zhengchenyu
This commit is contained in:
zhengchenyu 2022-06-18 02:49:36 +08:00 committed by GitHub
parent e199da3fae
commit 80446dcd08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 13 deletions

View File

@ -518,9 +518,9 @@ protected DelegationTokenInformation checkToken(TokenIdent identifier)
} }
long now = Time.now(); long now = Time.now();
if (info.getRenewDate() < now) { if (info.getRenewDate() < now) {
err = err = "Token " + identifier.getRealUser() + " has expired, current time: "
"Token has" + identifier.getRealUser() + "expired, current time: " + Time.formatTime(now) + Time.formatTime(now) + " expected renewal time: " + Time
+ " expected renewal time: " + Time.formatTime(info.getRenewDate()); .formatTime(info.getRenewDate());
LOG.info("{}, Token={}", err, formatTokenId(identifier)); LOG.info("{}, Token={}", err, formatTokenId(identifier));
throw new InvalidToken(err); throw new InvalidToken(err);
} }

View File

@ -18,7 +18,6 @@
package org.apache.hadoop.yarn.server.resourcemanager; package org.apache.hadoop.yarn.server.resourcemanager;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
@ -36,6 +35,7 @@
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction; import java.security.PrivilegedExceptionAction;
import org.apache.hadoop.test.LambdaTestUtils;
import org.apache.hadoop.thirdparty.protobuf.InvalidProtocolBufferException; import org.apache.hadoop.thirdparty.protobuf.InvalidProtocolBufferException;
import org.apache.hadoop.io.DataOutputBuffer; import org.apache.hadoop.io.DataOutputBuffer;
import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.net.NetUtils;
@ -111,7 +111,7 @@ public void resetSecretManager() {
} }
@Test @Test
public void testDelegationToken() throws IOException, InterruptedException { public void testDelegationToken() throws Exception {
final YarnConfiguration conf = new YarnConfiguration(); final YarnConfiguration conf = new YarnConfiguration();
conf.set(YarnConfiguration.RM_PRINCIPAL, "testuser/localhost@apache.org"); conf.set(YarnConfiguration.RM_PRINCIPAL, "testuser/localhost@apache.org");
@ -198,14 +198,11 @@ public void testDelegationToken() throws IOException, InterruptedException {
} }
Thread.sleep(50l); Thread.sleep(50l);
LOG.info("At time: " + System.currentTimeMillis() + ", token should be invalid"); LOG.info("At time: " + System.currentTimeMillis() + ", token should be invalid");
// Token should have expired. // Token should have expired.
try { final ApplicationClientProtocol finalClientRMWithDT = clientRMWithDT;
clientRMWithDT.getNewApplication(request); final GetNewApplicationRequest finalRequest = request;
fail("Should not have succeeded with an expired token"); LambdaTestUtils.intercept(InvalidToken.class, "Token has expired",
} catch (Exception e) { () -> finalClientRMWithDT.getNewApplication(finalRequest));
assertEquals(InvalidToken.class.getName(), e.getClass().getName());
assertTrue(e.getMessage().contains("is expired"));
}
// Test cancellation // Test cancellation
// Stop the existing proxy, start another. // Stop the existing proxy, start another.