Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 5E63F200C78 for ; Thu, 4 May 2017 05:56:48 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 5CF31160BBA; Thu, 4 May 2017 03:56:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id A3E67160BB5 for ; Thu, 4 May 2017 05:56:47 +0200 (CEST) Received: (qmail 83222 invoked by uid 500); 4 May 2017 03:56:46 -0000 Mailing-List: contact commits-help@tez.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tez.apache.org Delivered-To: mailing list commits@tez.apache.org Received: (qmail 83213 invoked by uid 99); 4 May 2017 03:56:46 -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; Thu, 04 May 2017 03:56:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 9652FE04F2; Thu, 4 May 2017 03:56:46 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: harishjp@apache.org To: commits@tez.apache.org Message-Id: <79257db3943e4a02922285ab04f204d9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: tez git commit: TEZ-3707. TezSharedExecutor race condition in awaitTermination vs isTerminated. (harishjp) Date: Thu, 4 May 2017 03:56:46 +0000 (UTC) archived-at: Thu, 04 May 2017 03:56:48 -0000 Repository: tez Updated Branches: refs/heads/master 7b30785bd -> fb7b146ef TEZ-3707. TezSharedExecutor race condition in awaitTermination vs isTerminated. (harishjp) Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/fb7b146e Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/fb7b146e Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/fb7b146e Branch: refs/heads/master Commit: fb7b146eff3a3e574f9524131e4d42c2a7de57b0 Parents: 7b30785 Author: Harish JP Authored: Thu May 4 09:24:39 2017 +0530 Committer: Harish JP Committed: Thu May 4 09:24:39 2017 +0530 ---------------------------------------------------------------------- .../java/org/apache/tez/common/TezSharedExecutor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/fb7b146e/tez-common/src/main/java/org/apache/tez/common/TezSharedExecutor.java ---------------------------------------------------------------------- diff --git a/tez-common/src/main/java/org/apache/tez/common/TezSharedExecutor.java b/tez-common/src/main/java/org/apache/tez/common/TezSharedExecutor.java index 93bf3cc..3cc72d5 100644 --- a/tez-common/src/main/java/org/apache/tez/common/TezSharedExecutor.java +++ b/tez-common/src/main/java/org/apache/tez/common/TezSharedExecutor.java @@ -277,7 +277,17 @@ public class TezSharedExecutor implements TezExecutors { @Override public boolean isTerminated() { - return isShutdown() && futures.isEmpty(); + if (!isShutdown()) { + return false; + } + // futures should be empty ideally, but there is a corner case where all the futures are done + // but not yet removed from futures map, for that case we check if the future is done. + for (ManagedFutureTask future : futures.keySet()) { + if (!future.isDone()) { + return false; + } + } + return true; } @Override