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

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


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

commit 9ce420f91b70a4252990f6e88309ca882036b675
Author: Martijn Visser <[email protected]>
AuthorDate: Tue Sep 29 20:04: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>
    - Assert per log file, so a failure names the file and the application
    
    Generated-by: Claude Code (Claude Opus 5.5)
    (cherry picked from commit 5c56320f1ce74223d26bdf8721284de4c3b0a9c8)
---
 .../apache/flink/yarn/YARNSessionFIFOSecuredITCase.java    | 14 ++++++++------
 .../src/test/java/org/apache/flink/yarn/YarnTestBase.java  |  6 +++++-
 2 files changed, 13 insertions(+), 7 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 b4b972f03b7..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
@@ -46,6 +46,7 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -193,12 +194,13 @@ 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"};
-        final boolean jobManagerRunsWithKerberos =
-                verifyStringsInNamedLogFiles(mustHave, applicationId, 
"jobmanager.log");
-        final boolean taskManagerRunsWithKerberos =
-                verifyStringsInNamedLogFiles(mustHave, applicationId, 
"taskmanager.log");
-
-        assertThat(jobManagerRunsWithKerberos && 
taskManagerRunsWithKerberos).isTrue();
+        for (final String logFile : new String[] {"jobmanager.log", 
"taskmanager.log"}) {
+            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 =
                 Lists.newArrayList(AMRMTokenIdentifier.KIND_NAME.toString());
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 45b5023abcd..32b88ed70c1 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
@@ -639,7 +639,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