[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; + } } }
