Return-Path: X-Original-To: apmail-falcon-commits-archive@minotaur.apache.org Delivered-To: apmail-falcon-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7650718266 for ; Mon, 7 Dec 2015 06:13:08 +0000 (UTC) Received: (qmail 39485 invoked by uid 500); 7 Dec 2015 06:13:08 -0000 Delivered-To: apmail-falcon-commits-archive@falcon.apache.org Received: (qmail 39381 invoked by uid 500); 7 Dec 2015 06:13:08 -0000 Mailing-List: contact commits-help@falcon.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@falcon.apache.org Delivered-To: mailing list commits@falcon.apache.org Received: (qmail 39365 invoked by uid 99); 7 Dec 2015 06:13:08 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Dec 2015 06:13:08 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0029FE03EC; Mon, 7 Dec 2015 06:13:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: pallavi@apache.org To: commits@falcon.apache.org Date: Mon, 07 Dec 2015 06:13:08 -0000 Message-Id: <777023a8b1b24748af9d1295d338ece9@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [2/2] falcon git commit: FALCON-1568 Process Instances are not getting scheduled in Falcon Native Scheduler FALCON-1568 Process Instances are not getting scheduled in Falcon Native Scheduler Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/97e35874 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/97e35874 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/97e35874 Branch: refs/heads/master Commit: 97e35874fa62103ba40a8bbb908c79c4f3b79a2d Parents: 3487f71 Author: Pallavi Rao Authored: Mon Dec 7 10:47:16 2015 +0530 Committer: Pallavi Rao Committed: Mon Dec 7 10:47:16 2015 +0530 ---------------------------------------------------------------------- CHANGES.txt | 4 ++++ .../falcon/execution/ProcessExecutionInstance.java | 4 +++- .../service/impl/JobCompletionService.java | 17 +++++++++++------ 3 files changed, 18 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/97e35874/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 193a26e..4690c95 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -58,6 +58,10 @@ Trunk (Unreleased) OPTIMIZATIONS BUG FIXES + FALCON-1598 Flaky test : EntityManagerJerseyIT.testDuplicateDeleteCommands (Narayan Periwal via Pallavi Rao) + + FALCON-1568 Process Instances are not getting scheduled in Falcon Native Scheduler (Pallavi Rao) + FALCON-1595 In secure cluster, Falcon server loses ability to communicate with HDFS over time (Balu Vellanki) FALCON-1490 Fixing inconsistencies in filterBy behavior (Narayan Periwal via Balu Vellanki) http://git-wip-us.apache.org/repos/asf/falcon/blob/97e35874/scheduler/src/main/java/org/apache/falcon/execution/ProcessExecutionInstance.java ---------------------------------------------------------------------- diff --git a/scheduler/src/main/java/org/apache/falcon/execution/ProcessExecutionInstance.java b/scheduler/src/main/java/org/apache/falcon/execution/ProcessExecutionInstance.java index cff4a73..f3beabc 100644 --- a/scheduler/src/main/java/org/apache/falcon/execution/ProcessExecutionInstance.java +++ b/scheduler/src/main/java/org/apache/falcon/execution/ProcessExecutionInstance.java @@ -320,6 +320,8 @@ public class ProcessExecutionInstance extends ExecutionInstance { @Override public void destroy() throws FalconException { - NotificationServicesRegistry.unregister(executionService, getId()); + // Only Registration to Data service happens via process execution instance. So, handle just that. + NotificationServicesRegistry.getService(NotificationServicesRegistry.SERVICE.DATA) + .unregister(executionService, getId()); } } http://git-wip-us.apache.org/repos/asf/falcon/blob/97e35874/scheduler/src/main/java/org/apache/falcon/notification/service/impl/JobCompletionService.java ---------------------------------------------------------------------- diff --git a/scheduler/src/main/java/org/apache/falcon/notification/service/impl/JobCompletionService.java b/scheduler/src/main/java/org/apache/falcon/notification/service/impl/JobCompletionService.java index 501c6aa..23f2b4e 100644 --- a/scheduler/src/main/java/org/apache/falcon/notification/service/impl/JobCompletionService.java +++ b/scheduler/src/main/java/org/apache/falcon/notification/service/impl/JobCompletionService.java @@ -41,12 +41,13 @@ import org.joda.time.DateTimeZone; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.List; +import java.util.HashSet; +import java.util.Iterator; import java.util.Map; import java.util.Properties; +import java.util.Set; /** * This notification service notifies {@link NotificationHandler} when an external job @@ -57,7 +58,7 @@ public class JobCompletionService implements FalconNotificationService, Workflow private static final Logger LOG = LoggerFactory.getLogger(JobCompletionService.class); private static final DateTimeZone UTC = DateTimeZone.UTC; - private List listeners = Collections.synchronizedList(new ArrayList()); + private Set listeners = Collections.synchronizedSet(new HashSet()); @Override public void register(NotificationRequest notifRequest) throws NotificationServiceException { @@ -140,9 +141,13 @@ public class JobCompletionService implements FalconNotificationService, Workflow private void onEnd(WorkflowExecutionContext context, WorkflowJob.Status status) throws FalconException { JobCompletedEvent event = new JobCompletedEvent(constructCallbackID(context), status, getEndTime(context)); - for (NotificationHandler handler : listeners) { - LOG.debug("Notifying {} with event {}", handler, event.getTarget()); - handler.onEvent(event); + synchronized (listeners) { + Iterator iterator = listeners.iterator(); + while(iterator.hasNext()) { + NotificationHandler handler = iterator.next(); + LOG.debug("Notifying {} with event {}", handler, event.getTarget()); + handler.onEvent(event); + } } }