[FLINK-2331] Whitelist the 'akka.remote.RemoteTransportExceptionNoStackTrace' 
to be acceptable in YARN logs


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/0c49891f
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/0c49891f
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/0c49891f

Branch: refs/heads/master
Commit: 0c49891fbc2738fc3d308cefeebb6434f84c2592
Parents: 706c391
Author: Stephan Ewen <[email protected]>
Authored: Wed Jul 8 19:22:26 2015 +0200
Committer: Stephan Ewen <[email protected]>
Committed: Wed Jul 8 20:28:40 2015 +0200

----------------------------------------------------------------------
 .../YARNSessionCapacitySchedulerITCase.java     |  2 +-
 .../flink/yarn/YARNSessionFIFOITCase.java       |  2 +-
 .../org/apache/flink/yarn/YarnTestBase.java     | 29 ++++++++++++++++----
 3 files changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/0c49891f/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
----------------------------------------------------------------------
diff --git 
a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
 
b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
index 4051ff5..7f14ad5 100644
--- 
a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
+++ 
b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionCapacitySchedulerITCase.java
@@ -82,6 +82,6 @@ public class YARNSessionCapacitySchedulerITCase extends 
YarnTestBase {
 
        @After
        public void checkForProhibitedLogContents() {
-               ensureNoProhibitedStringInLogFiles(PROHIBITED_STRINGS);
+               ensureNoProhibitedStringInLogFiles(PROHIBITED_STRINGS, 
WHITELISTED_STRINGS);
        }
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/0c49891f/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionFIFOITCase.java
----------------------------------------------------------------------
diff --git 
a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionFIFOITCase.java
 
b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionFIFOITCase.java
index ac1f971..6f07d36 100644
--- 
a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionFIFOITCase.java
+++ 
b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YARNSessionFIFOITCase.java
@@ -91,7 +91,7 @@ public class YARNSessionFIFOITCase extends YarnTestBase {
 
        @After
        public void checkForProhibitedLogContents() {
-               ensureNoProhibitedStringInLogFiles(PROHIBITED_STRINGS);
+               ensureNoProhibitedStringInLogFiles(PROHIBITED_STRINGS, 
WHITELISTED_STRINGS);
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/flink/blob/0c49891f/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YarnTestBase.java
----------------------------------------------------------------------
diff --git 
a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YarnTestBase.java 
b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YarnTestBase.java
index b002e8f..43285b5 100644
--- a/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YarnTestBase.java
+++ b/flink-yarn-tests/src/main/java/org/apache/flink/yarn/YarnTestBase.java
@@ -79,12 +79,17 @@ public abstract class YarnTestBase {
 
        protected final static int NUM_NODEMANAGERS = 2;
 
-       // The tests are scanning for these strings in the final output.
+       /** The tests are scanning for these strings in the final output. */
        protected final static String[] PROHIBITED_STRINGS = {
                        "Exception", // we don't want any exceptions to happen
                        "Started [email protected]:8081" // Jetty 
should start on a random port in YARN mode.
        };
 
+       /** These strings are white-listed, overriding teh prohibited strings */
+       protected final static String[] WHITELISTED_STRINGS = {
+                       "akka.remote.RemoteTransportExceptionNoStackTrace"
+       };
+
        // Temp directory which is deleted after the unit test.
        @ClassRule
        public static TemporaryFolder tmp = new TemporaryFolder();
@@ -232,10 +237,11 @@ public abstract class YarnTestBase {
         * So always run "mvn clean" before running the tests here.
         *
         */
-       public static void ensureNoProhibitedStringInLogFiles(final String[] 
prohibited) {
+       public static void ensureNoProhibitedStringInLogFiles(final String[] 
prohibited, final String[] whitelisted) {
                File cwd = new 
File("target/"+yarnConfiguration.get(TEST_CLUSTER_NAME_KEY));
                Assert.assertTrue("Expecting directory 
"+cwd.getAbsolutePath()+" to exist", cwd.exists());
                Assert.assertTrue("Expecting directory 
"+cwd.getAbsolutePath()+" to be a directory", cwd.isDirectory());
+               
                File foundFile = findFile(cwd.getAbsolutePath(), new 
FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
@@ -247,10 +253,21 @@ public abstract class YarnTestBase {
                                        final String lineFromFile = 
scanner.nextLine();
                                        for (String aProhibited : prohibited) {
                                                if 
(lineFromFile.contains(aProhibited)) {
-                                                       // logging in FATAL to 
see the actual message in TRAVIS tests.
-                                                       Marker fatal = 
MarkerFactory.getMarker("FATAL");
-                                                       LOG.error(fatal, 
"Prohibited String '{}' in line '{}'", aProhibited, lineFromFile);
-                                                       return true;
+                                                       
+                                                       boolean 
whitelistedFound = false;
+                                                       for (String white : 
whitelisted) {
+                                                               if 
(lineFromFile.contains(white)) {
+                                                                       
whitelistedFound = true;
+                                                                       break;
+                                                               }
+                                                       }
+                                                       
+                                                       if (!whitelistedFound) {
+                                                               // logging in 
FATAL to see the actual message in TRAVIS tests.
+                                                               Marker fatal = 
MarkerFactory.getMarker("FATAL");
+                                                               
LOG.error(fatal, "Prohibited String '{}' in line '{}'", aProhibited, 
lineFromFile);
+                                                               return true;
+                                                       }
                                                }
                                        }
 

Reply via email to