Return-Path: X-Original-To: apmail-brooklyn-commits-archive@minotaur.apache.org Delivered-To: apmail-brooklyn-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 43E31179F4 for ; Mon, 6 Oct 2014 11:56:55 +0000 (UTC) Received: (qmail 63434 invoked by uid 500); 6 Oct 2014 11:56:55 -0000 Delivered-To: apmail-brooklyn-commits-archive@brooklyn.apache.org Received: (qmail 63410 invoked by uid 500); 6 Oct 2014 11:56:55 -0000 Mailing-List: contact commits-help@brooklyn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.incubator.apache.org Delivered-To: mailing list commits@brooklyn.incubator.apache.org Received: (qmail 63396 invoked by uid 99); 6 Oct 2014 11:56:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Oct 2014 11:56:55 +0000 X-ASF-Spam-Status: No, hits=-1999.0 required=5.0 tests=ALL_TRUSTED,HK_RANDOM_FROM,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 06 Oct 2014 11:56:53 +0000 Received: (qmail 63253 invoked by uid 99); 6 Oct 2014 11:56:33 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 06 Oct 2014 11:56:33 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 3CA7292691B; Mon, 6 Oct 2014 11:56:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: grkvlt@apache.org To: commits@brooklyn.incubator.apache.org Date: Mon, 06 Oct 2014 11:56:35 -0000 Message-Id: <6aba39d4f7654abc8738fe4207e1e70e@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [03/14] git commit: Add logging on exceptions propagation and use unchecked interrupted exception for mutex X-Virus-Checked: Checked by ClamAV on apache.org Add logging on exceptions propagation and use unchecked interrupted exception for mutex Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/3fcdc462 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/3fcdc462 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/3fcdc462 Branch: refs/heads/master Commit: 3fcdc4629be737b79569f93c61f5e18ff313fb79 Parents: 401542d Author: Andrew Kennedy Authored: Wed Oct 1 22:00:51 2014 +0100 Committer: Andrew Kennedy Committed: Sun Oct 5 23:46:59 2014 +0100 ---------------------------------------------------------------------- .../java/brooklyn/location/basic/SshMachineLocation.java | 9 +++++++-- core/src/main/java/brooklyn/util/file/ArchiveUtils.java | 10 ++++------ .../entity/basic/AbstractSoftwareProcessSshDriver.java | 9 +++++---- .../entity/java/JavaSoftwareProcessSshDriver.java | 4 +--- 4 files changed, 17 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3fcdc462/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java index d5216ad..40ffc6f 100644 --- a/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java +++ b/core/src/main/java/brooklyn/location/basic/SshMachineLocation.java @@ -66,6 +66,7 @@ import brooklyn.util.collections.MutableMap; import brooklyn.util.config.ConfigBag; import brooklyn.util.crypto.SecureKeys; import brooklyn.util.exceptions.Exceptions; +import brooklyn.util.exceptions.RuntimeInterruptedException; import brooklyn.util.file.ArchiveUtils; import brooklyn.util.flags.SetFromFlag; import brooklyn.util.flags.TypeCoercions; @@ -858,8 +859,12 @@ public class SshMachineLocation extends AbstractLocation implements MachineLocat } @Override - public void acquireMutex(String mutexId, String description) throws InterruptedException { - mutexSupport.acquireMutex(mutexId, description); + public void acquireMutex(String mutexId, String description) throws RuntimeInterruptedException { + try { + mutexSupport.acquireMutex(mutexId, description); + } catch (InterruptedException ie) { + throw new RuntimeInterruptedException("Interrupted waiting for mutex: " + mutexId, ie); + } } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3fcdc462/core/src/main/java/brooklyn/util/file/ArchiveUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/file/ArchiveUtils.java b/core/src/main/java/brooklyn/util/file/ArchiveUtils.java index be67dfe..93025f0 100644 --- a/core/src/main/java/brooklyn/util/file/ArchiveUtils.java +++ b/core/src/main/java/brooklyn/util/file/ArchiveUtils.java @@ -264,16 +264,16 @@ public class ArchiveUtils { String destPath = Os.mergePaths(tmpDir, destFile); // Use the location mutex to prevent package manager locking issues + machine.acquireMutex("installing", "installing archive"); try { - machine.acquireMutex("installing", "installing archive"); int result = install(resolver, props, machine, archiveUrl, destPath, NUM_RETRIES_FOR_COPYING); if (result != 0) { throw new IllegalStateException(format("Unable to install archive %s to %s", archiveUrl, machine)); } - + // extract, now using task if available - MutableList commands = MutableList.copyOf(installCommands(destFile)) - .appendAll(extractCommands(destFile, tmpDir, destDir, false, keepArchiveAfterUnpacking)); + MutableList commands = MutableList.copyOf(installCommands(optionalDestFile)) + .appendAll(extractCommands(optionalDestFile, optionalTmpDir, destDir, false, keepArchiveAfterUnpacking)); if (DynamicTasks.getTaskQueuingContext()!=null) { result = DynamicTasks.queue(SshTasks.newSshExecTaskFactory(machine, commands.toArray(new String[0])).summary("extracting archive").requiringExitCodeZero()).get(); } else { @@ -283,8 +283,6 @@ public class ArchiveUtils { throw new IllegalStateException(format("Failed to expand archive %s on %s", archiveUrl, machine)); } return ArchiveType.of(destFile)!=ArchiveType.UNKNOWN; - } catch (InterruptedException e) { - throw Exceptions.propagate(e); } finally { machine.releaseMutex("installing"); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3fcdc462/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java index 09dfd4c..24dfa11 100644 --- a/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java +++ b/software/base/src/main/java/brooklyn/entity/basic/AbstractSoftwareProcessSshDriver.java @@ -303,9 +303,8 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP */ @Override public void copyInstallResources() { + getLocation().acquireMutex("installing "+elvis(entity,this), "installation lock at host for files and templates"); try { - getLocation().acquireMutex("installing "+elvis(entity,this), "installation lock at host for files and templates"); - getLocation().execCommands("create install directory", ImmutableList.of("mkdir -p " + getInstallDir())); Map installFiles = entity.getConfig(SoftwareProcess.INSTALL_FILES); @@ -326,7 +325,8 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP } } } catch (Exception e) { - Exceptions.propagateIfFatal(e); + log.warn("Error copying install resources", e); + throw Exceptions.propagate(e); } finally { getLocation().releaseMutex("installing "+elvis(entity,this)); } @@ -363,7 +363,8 @@ public abstract class AbstractSoftwareProcessSshDriver extends AbstractSoftwareP } } } catch (Exception e) { - Exceptions.propagateIfFatal(e); + log.warn("Error copying runtime resources", e); + throw Exceptions.propagate(e); } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3fcdc462/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java b/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java index 533f95a..88dd631 100644 --- a/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java +++ b/software/base/src/main/java/brooklyn/entity/java/JavaSoftwareProcessSshDriver.java @@ -336,8 +336,8 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce } protected int tryJavaInstall(String version, String command) { + getLocation().acquireMutex("installing", "installing Java at " + getLocation()); try { - getLocation().acquireMutex("installing", "installing Java at " + getLocation()); log.debug("Installing Java {} at {}@{}", new Object[]{version, getEntity(), getLocation()}); ProcessTaskWrapper installCommand = Entities.submit(getEntity(), SshTasks.newSshExecTaskFactory(getLocation(), command)); @@ -347,8 +347,6 @@ public abstract class JavaSoftwareProcessSshDriver extends AbstractSoftwareProce new Object[]{version, getEntity(), getLocation(), installCommand.getStderr()}); } return result; - } catch (Exception e) { - throw Throwables.propagate(e); } finally { getLocation().releaseMutex("installing"); }