This is an automated email from the ASF dual-hosted git repository.

MartijnVisser pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 5c56320f1ce [FLINK-40109][yarn][tests] Include rolled logs in the 
keytab log check
5c56320f1ce is described below

commit 5c56320f1ce74223d26bdf8721284de4c3b0a9c8
Author: Martijn Visser <[email protected]>
AuthorDate: Mon Sep 28 14:44:57 2026 +0200

    [FLINK-40109][yarn][tests] Include rolled logs in the keytab log check
    
    - The distribution's log4j config can roll a container log shortly after
      startup, which moves the keytab login into jobmanager.log.1 or
      taskmanager.log.1
    - verifyStringsInNamedLogFiles now also reads <file>.<n>
    - Check once instead of polling for 60s: the login line is written at
      startup, long before the application is killed
    
    Generated-by: Claude Code (Claude Opus 5.5)
---
 .../flink/yarn/YARNSessionFIFOSecuredITCase.java   | 22 +++++-----------------
 .../java/org/apache/flink/yarn/YarnTestBase.java   |  6 +++++-
 2 files changed, 10 insertions(+), 18 deletions(-)

diff --git 
a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionFIFOSecuredITCase.java
 
b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionFIFOSecuredITCase.java
index 3ef2992ec93..aabeb39712f 100644
--- 
a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionFIFOSecuredITCase.java
+++ 
b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YARNSessionFIFOSecuredITCase.java
@@ -20,7 +20,6 @@ package org.apache.flink.yarn;
 
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.configuration.SecurityOptions;
-import org.apache.flink.core.testutils.CommonTestUtils;
 import org.apache.flink.runtime.security.SecurityConfiguration;
 import org.apache.flink.runtime.security.SecurityUtils;
 import org.apache.flink.runtime.security.contexts.HadoopSecurityContext;
@@ -47,7 +46,6 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.time.Duration;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -196,22 +194,12 @@ class YARNSessionFIFOSecuredITCase extends 
YARNSessionFIFOITCase {
     private static void verifyResultContainsKerberosKeytab(
             ApplicationId applicationId, String viewAcls, String modifyAcls) 
throws Exception {
         final String[] mustHave = {"Login successful for user", "using keytab 
file"};
-        // The application has been killed by now, so all container output is 
flushed. A
-        // short-lived TaskManager's startup login line can still be briefly 
unreadable right
-        // after teardown (FLINK-17662), so poll each log instead of reading 
it once.
         for (final String logFile : new String[] {"jobmanager.log", 
"taskmanager.log"}) {
-            log.info("Waiting until {} contains the Kerberos keytab login", 
logFile);
-            CommonTestUtils.waitUtil(
-                    () -> verifyStringsInNamedLogFiles(mustHave, 
applicationId, logFile),
-                    Duration.ofSeconds(60),
-                    Duration.ofMillis(500),
-                    "Kerberos keytab login "
-                            + Arrays.toString(mustHave)
-                            + " not found in "
-                            + logFile
-                            + " for application "
-                            + applicationId
-                            + " within the timeout; inspect the uploaded 
container logs.");
+            assertThat(verifyStringsInNamedLogFiles(mustHave, applicationId, 
logFile))
+                    .as(
+                            "Kerberos keytab login %s in %s or its rolled 
files for %s",
+                            Arrays.toString(mustHave), logFile, applicationId)
+                    .isTrue();
         }
 
         final List<String> amRMTokens =
diff --git 
a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java 
b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
index a2621e090fe..1fdcdc02b4b 100644
--- a/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
+++ b/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java
@@ -640,7 +640,11 @@ public abstract class YarnTestBase {
                         new FilenameFilter() {
                             @Override
                             public boolean accept(File dir, String name) {
-                                if (fileName != null && 
!name.equals(fileName)) {
+                                // Container logs go through a RollingFile 
appender, so earlier
+                                // lines may be in <fileName>.<n>.
+                                if (fileName != null
+                                        && !name.equals(fileName)
+                                        && 
!name.matches(Pattern.quote(fileName) + "\\.\\d+")) {
                                     return false;
                                 }
                                 final File f = new File(dir.getAbsolutePath(), 
name);

Reply via email to