Author: rkanter
Date: Fri Oct 18 16:49:44 2013
New Revision: 1533552
URL: http://svn.apache.org/r1533552
Log:
OOZIE-1577 Oozie coordinator job with identical start and end time remains
RUNNING forever (bowenzhangusa via rkanter)
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java
oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java
oozie/trunk/docs/src/site/twiki/CoordinatorFunctionalSpec.twiki
oozie/trunk/release-log.txt
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java?rev=1533552&r1=1533551&r2=1533552&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java
Fri Oct 18 16:49:44 2013
@@ -308,8 +308,8 @@ public class CoordSubmitXCommand extends
*/
private void validateCoordinatorJob() {
// check if startTime < endTime
- if (coordJob.getStartTime().after(coordJob.getEndTime())) {
- throw new IllegalArgumentException("Coordinator Start Time cannot
be greater than End Time.");
+ if (!coordJob.getStartTime().before(coordJob.getEndTime())) {
+ throw new IllegalArgumentException("Coordinator Start Time must be
earlier than End Time.");
}
}
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java?rev=1533552&r1=1533551&r2=1533552&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java
Fri Oct 18 16:49:44 2013
@@ -133,7 +133,45 @@ public class TestCoordSubmitXCommand ext
catch (CommandException e) {
assertEquals(sc.getJob().getStatus(), Job.Status.FAILED);
assertEquals(e.getErrorCode(), ErrorCode.E1003);
- assertTrue(e.getMessage().contains("Coordinator Start Time cannot
be greater than End Time."));
+ assertTrue(e.getMessage().contains("Coordinator Start Time must be
earlier than End Time."));
+ }
+ }
+
+ public void testBasicSubmitWithIdenticalStartAndEndTime() throws Exception
{
+ Configuration conf = new XConfiguration();
+ File appPathFile = new File(getTestCaseDir(), "coordinator.xml");
+ String appXml = "<coordinator-app name=\"NAME\"
frequency=\"${coord:days(1)}\" start=\"2010-02-01T01:00Z\" "
+ + "end=\"2010-02-01T01:00Z\" timezone=\"UTC\" "
+ + "xmlns=\"uri:oozie:coordinator:0.2\"> <controls> "
+ + "<execution>LIFO</execution> </controls> <datasets> "
+ + "<dataset name=\"a\" frequency=\"${coord:days(7)}\"
initial-instance=\"2009-02-01T01:00Z\" "
+ + "timezone=\"UTC\"> <uri-template>" +
getTestCaseFileUri("coord/workflows/${YEAR}/${DAY}")
+ + "</uri-template> </dataset> "
+ + "<dataset name=\"local_a\" frequency=\"${coord:days(7)}\"
initial-instance=\"2009-02-01T01:00Z\" "
+ + "timezone=\"UTC\"> <uri-template>" +
getTestCaseFileUri("coord/workflows/${YEAR}/${DAY}")
+ + "</uri-template> </dataset> "
+ + "</datasets> <input-events> "
+ + "<data-in name=\"A\" dataset=\"a\">
<instance>${coord:latest(0)}</instance> </data-in> "
+ + "</input-events> "
+ + "<output-events> <data-out name=\"LOCAL_A\"
dataset=\"local_a\"> "
+ + "<instance>${coord:current(-1)}</instance> </data-out>
</output-events> <action> <workflow> "
+ + "<app-path>hdfs:///tmp/workflows/</app-path> "
+ + "<configuration> <property> <name>inputA</name>
<value>${coord:dataIn('A')}</value> </property> "
+ + "<property> <name>inputB</name>
<value>${coord:dataOut('LOCAL_A')}</value> "
+ + "</property></configuration> </workflow> </action>
</coordinator-app>";
+ writeToFile(appXml, appPathFile);
+ conf.set(OozieClient.COORDINATOR_APP_PATH,
appPathFile.toURI().toString());
+ conf.set(OozieClient.USER_NAME, getTestUser());
+ CoordSubmitXCommand sc = new CoordSubmitXCommand(conf);
+
+ try {
+ sc.call();
+ fail("Expected to catch errors due to incorrectly specified Start
and End Time");
+ }
+ catch (CommandException e) {
+ assertEquals(sc.getJob().getStatus(), Job.Status.FAILED);
+ assertEquals(e.getErrorCode(), ErrorCode.E1003);
+ assertTrue(e.getMessage().contains("Coordinator Start Time must be
earlier than End Time."));
}
}
Modified: oozie/trunk/docs/src/site/twiki/CoordinatorFunctionalSpec.twiki
URL:
http://svn.apache.org/viewvc/oozie/trunk/docs/src/site/twiki/CoordinatorFunctionalSpec.twiki?rev=1533552&r1=1533551&r2=1533552&view=diff
==============================================================================
--- oozie/trunk/docs/src/site/twiki/CoordinatorFunctionalSpec.twiki (original)
+++ oozie/trunk/docs/src/site/twiki/CoordinatorFunctionalSpec.twiki Fri Oct 18
16:49:44 2013
@@ -792,7 +792,8 @@ Coordinator applications are normally pa
To create a coordinator job, a job configuration that resolves all coordinator
application parameters must be provided to the coordinator engine.
-A coordinator job is a running instance of a coordinator application running
from a start time to an end time.
+A coordinator job is a running instance of a coordinator application running
from a start time to an end time. The start
+time must be earlier than the end time.
At any time, a coordinator job is in one of the following status: *PREP,
RUNNING, RUNNINGWITHERROR, PREPSUSPENDED, SUSPENDED, SUSPENDEDWITHERROR,
PREPPAUSED, PAUSED, PAUSEDWITHERROR, SUCCEEDED, DONEWITHERROR, KILLED, FAILED*.
Modified: oozie/trunk/release-log.txt
URL:
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1533552&r1=1533551&r2=1533552&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Fri Oct 18 16:49:44 2013
@@ -1,5 +1,6 @@
-- Oozie 4.1.0 release (trunk - unreleased)
+OOZIE-1577 Oozie coordinator job with identical start and end time remains
"RUNNING" forever (bowenzhangusa via rkanter)
OOZIE-1559 Fix missing fields from new SELECT queries and Recovery Service
picking up killed control nodes (ryota,mona via mona)
OOZIE-1569 Maintain backward incompatibility for running jobs before upgrade
(mona)
OOZIE-1568 TestWorkflowClient.testSla is flakey (rkanter)