HADOOP-13770. Shell.checkIsBashSupported swallowed an interrupted exception. Contributed by Wei-Chiu Chuang
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c017171d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c017171d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c017171d Branch: refs/heads/HDFS-9806 Commit: c017171da00a6cd71a2901c84a0298ce14a49e23 Parents: 3de1302 Author: Jason Lowe <jl...@apache.org> Authored: Fri Oct 28 14:57:50 2016 +0000 Committer: Jason Lowe <jl...@apache.org> Committed: Fri Oct 28 14:57:50 2016 +0000 ---------------------------------------------------------------------- .../src/main/java/org/apache/hadoop/util/Shell.java | 6 ++++-- .../org/apache/hadoop/yarn/server/nodemanager/NodeManager.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c017171d/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java index 78f77c2..0745057 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java @@ -734,8 +734,7 @@ public abstract class Shell { } } - public static final boolean isBashSupported = checkIsBashSupported(); - private static boolean checkIsBashSupported() { + public static boolean checkIsBashSupported() throws InterruptedIOException { if (Shell.WINDOWS) { return false; } @@ -746,6 +745,9 @@ public abstract class Shell { String[] args = {"bash", "-c", "echo 1000"}; shexec = new ShellCommandExecutor(args); shexec.execute(); + } catch (InterruptedIOException iioe) { + LOG.warn("Interrupted, unable to determine if bash is supported", iioe); + throw iioe; } catch (IOException ioe) { LOG.warn("Bash is not supported by the OS", ioe); supported = false; http://git-wip-us.apache.org/repos/asf/hadoop/blob/c017171d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java index 37f67c4..5424464 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java @@ -750,7 +750,7 @@ public class NodeManager extends CompositeService // Failed to start if we're a Unix based system but we don't have bash. // Bash is necessary to launch containers under Unix-based systems. if (!Shell.WINDOWS) { - if (!Shell.isBashSupported) { + if (!Shell.checkIsBashSupported()) { String message = "Failing NodeManager start since we're on a " + "Unix-based system but bash doesn't seem to be available."; --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org