You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by rk...@apache.org on 2014/10/08 22:25:37 UTC
git commit: OOZIE-2017 On startup,
StatusTransitService can transition Coordinators that were in
PREPSUSPENDED to RUNNING (rkanter)
Repository: oozie
Updated Branches:
refs/heads/master 9f150b0b1 -> 2f2b34882
OOZIE-2017 On startup, StatusTransitService can transition Coordinators that were in PREPSUSPENDED to RUNNING (rkanter)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/2f2b3488
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/2f2b3488
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/2f2b3488
Branch: refs/heads/master
Commit: 2f2b34882f443f8dfff12c7a713964d91667abb3
Parents: 9f150b0
Author: Robert Kanter <rk...@cloudera.com>
Authored: Wed Oct 8 13:22:15 2014 -0700
Committer: Robert Kanter <rk...@cloudera.com>
Committed: Wed Oct 8 13:22:15 2014 -0700
----------------------------------------------------------------------
.../coord/CoordStatusTransitXCommand.java | 6 ++-
.../oozie/service/TestStatusTransitService.java | 48 ++++++++++++++++++++
release-log.txt | 1 +
3 files changed, 54 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/2f2b3488/core/src/main/java/org/apache/oozie/command/coord/CoordStatusTransitXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordStatusTransitXCommand.java b/core/src/main/java/org/apache/oozie/command/coord/CoordStatusTransitXCommand.java
index 2c5aab8..ffc5c44 100644
--- a/core/src/main/java/org/apache/oozie/command/coord/CoordStatusTransitXCommand.java
+++ b/core/src/main/java/org/apache/oozie/command/coord/CoordStatusTransitXCommand.java
@@ -170,7 +170,9 @@ public class CoordStatusTransitXCommand extends StatusTransitXCommand {
@Override
protected boolean isSuspendedState() {
- if (coordJob.getStatus() == Job.Status.SUSPENDED || coordJob.getStatus() == Job.Status.SUSPENDEDWITHERROR) {
+ if (coordJob.getStatus() == Job.Status.SUSPENDED
+ || coordJob.getStatus() == Job.Status.SUSPENDEDWITHERROR
+ || coordJob.getStatus() == Job.Status.PREPSUSPENDED) {
return true;
}
else {
@@ -182,6 +184,8 @@ public class CoordStatusTransitXCommand extends StatusTransitXCommand {
protected Status getSuspendedStatus() {
if (coordJob.getStatus() == Job.Status.SUSPENDED || coordJob.getStatus() == Job.Status.SUSPENDEDWITHERROR) {
return hasTerminatedActions() ? Job.Status.SUSPENDEDWITHERROR : Job.Status.SUSPENDED;
+ } else if (coordJob.getStatus() == Job.Status.PREPSUSPENDED) {
+ return Job.Status.PREPSUSPENDED;
}
else {
return getBottomUpSuspendedState();
http://git-wip-us.apache.org/repos/asf/oozie/blob/2f2b3488/core/src/test/java/org/apache/oozie/service/TestStatusTransitService.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/service/TestStatusTransitService.java b/core/src/test/java/org/apache/oozie/service/TestStatusTransitService.java
index 364d71d..d25a2a4 100644
--- a/core/src/test/java/org/apache/oozie/service/TestStatusTransitService.java
+++ b/core/src/test/java/org/apache/oozie/service/TestStatusTransitService.java
@@ -438,6 +438,54 @@ public class TestStatusTransitService extends XDataTestCase {
assertEquals(Job.Status.SUCCEEDED, coordJob1.getStatus());
}
+ /**
+ * If you have a PREP coordinator job (with no actions) and you suspend it, it goes into PREPSUSPENDED.
+ * The StatusTransitService should not transition it to RUNNING automatically. This test verifies that the job remains in
+ * PREPSUSPENDED; and transitions back to PREP after a resume command.
+ *
+ * @throws Exception
+ */
+ public void testFoo() throws Exception {
+ final JPAService jpaService = Services.get().get(JPAService.class);
+ assertNotNull(jpaService);
+ String currentDatePlusMonth = XDataTestCase.getCurrentDateafterIncrementingInMonths(1);
+ Date start = DateUtils.parseDateOozieTZ(currentDatePlusMonth);
+ Date end = DateUtils.parseDateOozieTZ(currentDatePlusMonth);
+
+ CoordinatorJobBean coordJob = addRecordToCoordJobTable(CoordinatorJob.Status.PREP, start, end, true, false, 0);
+ final String coordJobId = coordJob.getId();
+
+ new CoordSuspendXCommand(coordJobId).call();
+
+ CoordJobGetJPAExecutor coordJobGetCmd = new CoordJobGetJPAExecutor(coordJobId);
+ coordJob = jpaService.execute(coordJobGetCmd);
+
+ assertEquals(Job.Status.PREPSUSPENDED, coordJob.getStatus());
+
+ new StatusTransitRunnable().run();
+
+ CoordinatorJobBean coordJob1 = jpaService.execute(new CoordJobGetJPAExecutor(coordJobId));
+ assertEquals(Job.Status.PREPSUSPENDED, coordJob1.getStatus());
+
+ new CoordResumeXCommand(coordJobId).call();
+
+ coordJob = jpaService.execute(coordJobGetCmd);
+
+ assertEquals(Job.Status.PREP, coordJob.getStatus());
+
+ new StatusTransitRunnable().run();
+
+ waitFor(20 * 1000, new Predicate() {
+ @Override
+ public boolean evaluate() throws Exception {
+ CoordinatorJobBean job = jpaService.execute(new CoordJobGetJPAExecutor(coordJobId));
+ return job.getStatus().equals(Job.Status.PREP);
+ }
+ });
+
+ coordJob1 = jpaService.execute(new CoordJobGetJPAExecutor(coordJobId));
+ assertEquals(Job.Status.PREP, coordJob1.getStatus());
+ }
/**
* Test : all coord actions are running, job pending is reset
http://git-wip-us.apache.org/repos/asf/oozie/blob/2f2b3488/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index f4a866d..bcbc9e8 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 4.2.0 release (trunk - unreleased)
+OOZIE-2017 On startup, StatusTransitService can transition Coordinators that were in PREPSUSPENDED to RUNNING (rkanter)
OOZIE-1940 StatusTransitService has race condition (puru)
OOZIE-1696 Document how to get the action conf in the Java action (jrkinley via rkanter)
OOZIE-1567 Provide a wait tool in Oozie (rkanter)