Repository: oozie Updated Branches: refs/heads/master 6cdc4d5d8 -> 88aa654d6
OOZIE-3236 Fix flaky test TestHiveActionExecutor#testHiveAction (pbacsko via gezapeti) Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/88aa654d Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/88aa654d Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/88aa654d Branch: refs/heads/master Commit: 88aa654d66e8954a7e250f19513678da705177c3 Parents: 6cdc4d5 Author: Gezapeti Cseh <gezap...@apache.org> Authored: Wed May 16 13:46:42 2018 +0200 Committer: Gezapeti Cseh <gezap...@apache.org> Committed: Wed May 16 13:46:42 2018 +0200 ---------------------------------------------------------------------- .../java/org/apache/oozie/test/XTestCase.java | 18 ++++++++++++++--- release-log.txt | 1 + .../action/hadoop/TestHiveActionExecutor.java | 21 +------------------- 3 files changed, 17 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/88aa654d/core/src/test/java/org/apache/oozie/test/XTestCase.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/oozie/test/XTestCase.java b/core/src/test/java/org/apache/oozie/test/XTestCase.java index a8be36b..436cfc2 100644 --- a/core/src/test/java/org/apache/oozie/test/XTestCase.java +++ b/core/src/test/java/org/apache/oozie/test/XTestCase.java @@ -125,6 +125,7 @@ import org.apache.openjpa.persistence.RollbackException; public abstract class XTestCase extends TestCase { private static EnumSet<YarnApplicationState> YARN_TERMINAL_STATES = EnumSet.of(YarnApplicationState.FAILED, YarnApplicationState.KILLED, YarnApplicationState.FINISHED); + private static final int DEFAULT_YARN_TIMEOUT = 60_000; private Map<String, String> sysProps; private String testCaseDir; private String testCaseConfDir; @@ -1313,8 +1314,8 @@ public abstract class XTestCase extends TestCase { return services; } - protected YarnApplicationState waitUntilYarnAppState(String externalId, final EnumSet<YarnApplicationState> acceptedStates) - throws HadoopAccessorException, IOException, YarnException { + protected YarnApplicationState waitUntilYarnAppState(String externalId, final EnumSet<YarnApplicationState> acceptedStates, + int timeoutMs) throws HadoopAccessorException, IOException, YarnException { final ApplicationId appId = ConverterUtils.toApplicationId(externalId); final MutableObject<YarnApplicationState> finalState = new MutableObject<YarnApplicationState>(); @@ -1322,7 +1323,7 @@ public abstract class XTestCase extends TestCase { final YarnClient yarnClient = Services.get().get(HadoopAccessorService.class).createYarnClient(getTestUser(), conf); try { - waitFor(60 * 1000, new Predicate() { + waitFor(timeoutMs, new Predicate() { @Override public boolean evaluate() throws Exception { YarnApplicationState state = yarnClient.getApplicationReport(appId).getYarnApplicationState(); @@ -1341,12 +1342,23 @@ public abstract class XTestCase extends TestCase { return finalState.getValue(); } + protected YarnApplicationState waitUntilYarnAppState(String externalId, final EnumSet<YarnApplicationState> acceptedStates) + throws HadoopAccessorException, IOException, YarnException { + return waitUntilYarnAppState(externalId, acceptedStates, DEFAULT_YARN_TIMEOUT); + } + protected void waitUntilYarnAppDoneAndAssertSuccess(String externalId) throws HadoopAccessorException, IOException, YarnException { YarnApplicationState state = waitUntilYarnAppState(externalId, YARN_TERMINAL_STATES); assertEquals("YARN App state for app " + externalId, YarnApplicationState.FINISHED, state); } + protected void waitUntilYarnAppDoneAndAssertSuccess(String externalId, int timeout) + throws HadoopAccessorException, IOException, YarnException { + YarnApplicationState state = waitUntilYarnAppState(externalId, YARN_TERMINAL_STATES, timeout); + assertEquals("YARN App state for app " + externalId, YarnApplicationState.FINISHED, state); + } + protected void waitUntilYarnAppKilledAndAssertSuccess(String externalId) throws HadoopAccessorException, IOException, YarnException { YarnApplicationState state = waitUntilYarnAppState(externalId, YARN_TERMINAL_STATES); http://git-wip-us.apache.org/repos/asf/oozie/blob/88aa654d/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index 222c255..6dbe922 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 5.1.0 release (trunk - unreleased) +OOZIE-3236 Fix flaky test TestHiveActionExecutor#testHiveAction (pbacsko via gezapeti) OOZIE-3235 Upgrade ActiveMQ to 5.15.3 (matijhs via andras.piros) OOZIE-3217 Enable definition of admin users using oozie-site.xml (orova via andras.piros) OOZIE-3219 Cannot compile with hadoop 3.1.0 (dbist13, andras.piros) http://git-wip-us.apache.org/repos/asf/oozie/blob/88aa654d/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java ---------------------------------------------------------------------- diff --git a/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java b/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java index 0e99fac..82f93d8 100644 --- a/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java +++ b/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java @@ -18,9 +18,6 @@ package org.apache.oozie.action.hadoop; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.text.MessageFormat; @@ -36,8 +33,6 @@ import org.apache.oozie.WorkflowJobBean; import org.apache.oozie.client.WorkflowAction; import org.apache.oozie.service.ConfigurationService; import org.apache.oozie.service.WorkflowAppService; -import org.apache.oozie.util.ClassUtils; -import org.apache.oozie.util.IOUtils; import org.apache.oozie.util.XConfiguration; import org.jdom.Namespace; @@ -55,7 +50,6 @@ public class TestHiveActionExecutor extends ActionExecutorTestCase { private static final String OUTPUT_DIRNAME = "output"; private static final String DATA_FILENAME = "data.txt"; - @SuppressWarnings("unchecked") public void testSetupMethods() throws Exception { HiveActionExecutor ae = new HiveActionExecutor(); assertEquals(Arrays.asList(HiveMain.class), ae.getLauncherClasses()); @@ -155,7 +149,7 @@ public class TestHiveActionExecutor extends ActionExecutorTestCase { Context context = createContext(getActionScriptXml()); Namespace ns = Namespace.getNamespace("uri:oozie:hive-action:0.2"); final String launcherId = submitAction(context, ns); - waitUntilYarnAppDoneAndAssertSuccess(launcherId); + waitUntilYarnAppDoneAndAssertSuccess(launcherId, 180 * 1000); Configuration conf = new XConfiguration(); conf.set("user.name", getTestUser()); Map<String, String> actionData = LauncherHelper.getActionData(getFileSystem(), context.getActionDir(), @@ -218,19 +212,6 @@ public class TestHiveActionExecutor extends ActionExecutorTestCase { return jobId; } - private String copyJar(String targetFile, Class<?> anyContainedClass) - throws Exception { - String file = ClassUtils.findContainingJar(anyContainedClass); - System.out.println("[copy-jar] class: " + anyContainedClass - + ", local jar ==> " + file); - Path targetPath = new Path(getAppPath(), targetFile); - FileSystem fs = getFileSystem(); - InputStream is = new FileInputStream(file); - OutputStream os = fs.create(new Path(getAppPath(), targetPath)); - IOUtils.copyStream(is, os); - return targetPath.toString(); - } - private Context createContext(String actionXml) throws Exception { HiveActionExecutor ae = new HiveActionExecutor();