[jira] [Updated] (HADOOP-12652) Error message in Shell.checkIsBashSupported is misleading

2015-12-16 Thread Wei-Chiu Chuang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HADOOP-12652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HADOOP-12652:
-
Labels: shell supportability  (was: )

> Error message in Shell.checkIsBashSupported is misleading
> -
>
> Key: HADOOP-12652
> URL: https://issues.apache.org/jira/browse/HADOOP-12652
> Project: Hadoop Common
>  Issue Type: Bug
>  Components: util
>Reporter: Wei-Chiu Chuang
>Assignee: Wei-Chiu Chuang
>  Labels: shell, supportability
>
> Shell.checkIsBashSupported() creates a bash shell command to verify if the 
> system supports bash. However, its error message is misleading, and the logic 
> should be updated.
> If the shell command throws an IOException, it does not imply the bash did 
> not run successfully. If the shell command process was interrupted, its 
> internal logic throws an InterruptedIOException, which is a subclass of 
> IOException.
> {code:title=Shell.checkIsBashSupported|borderStyle=solid}
> ShellCommandExecutor shexec;
> boolean supported = true;
> try {
>   String[] args = {"bash", "-c", "echo 1000"};
>   shexec = new ShellCommandExecutor(args);
>   shexec.execute();
> } catch (IOException ioe) {
>   LOG.warn("Bash is not supported by the OS", ioe);
>   supported = false;
> }
> {code}
> An example of it appeared in a recent jenkins job
> https://builds.apache.org/job/PreCommit-HADOOP-Build/8257/testReport/org.apache.hadoop.ipc/TestRPCWaitForProxy/testInterruptedWaitForProxy/
> {noformat}
> 2015-12-16 21:31:53,797 WARN  util.Shell 
> (Shell.java:checkIsBashSupported(718)) - Bash is not supported by the OS
> java.io.InterruptedIOException: java.lang.InterruptedException
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:930)
>   at org.apache.hadoop.util.Shell.run(Shell.java:838)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1117)
>   at org.apache.hadoop.util.Shell.checkIsBashSupported(Shell.java:716)
>   at org.apache.hadoop.util.Shell.(Shell.java:705)
>   at org.apache.hadoop.util.StringUtils.(StringUtils.java:79)
>   at 
> org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:639)
>   at 
> org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
>   at 
> org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
>   at 
> org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:803)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:773)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:646)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:397)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:350)
>   at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:330)
>   at 
> org.apache.hadoop.ipc.TestRPCWaitForProxy$RpcThread.run(TestRPCWaitForProxy.java:115)
> Caused by: java.lang.InterruptedException
>   at java.lang.Object.wait(Native Method)
>   at java.lang.Object.wait(Object.java:503)
>   at java.lang.UNIXProcess.waitFor(UNIXProcess.java:264)
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:920)
>   ... 15 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HADOOP-12652) Error message in Shell.checkIsBashSupported is misleading

2015-12-16 Thread Wei-Chiu Chuang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HADOOP-12652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HADOOP-12652:
-
Status: Patch Available  (was: Open)

> Error message in Shell.checkIsBashSupported is misleading
> -
>
> Key: HADOOP-12652
> URL: https://issues.apache.org/jira/browse/HADOOP-12652
> Project: Hadoop Common
>  Issue Type: Bug
>  Components: util
>Reporter: Wei-Chiu Chuang
>Assignee: Wei-Chiu Chuang
>  Labels: shell, supportability
> Attachments: HADOOP-12652.001.patch
>
>
> Shell.checkIsBashSupported() creates a bash shell command to verify if the 
> system supports bash. However, its error message is misleading, and the logic 
> should be updated.
> If the shell command throws an IOException, it does not imply the bash did 
> not run successfully. If the shell command process was interrupted, its 
> internal logic throws an InterruptedIOException, which is a subclass of 
> IOException.
> {code:title=Shell.checkIsBashSupported|borderStyle=solid}
> ShellCommandExecutor shexec;
> boolean supported = true;
> try {
>   String[] args = {"bash", "-c", "echo 1000"};
>   shexec = new ShellCommandExecutor(args);
>   shexec.execute();
> } catch (IOException ioe) {
>   LOG.warn("Bash is not supported by the OS", ioe);
>   supported = false;
> }
> {code}
> An example of it appeared in a recent jenkins job
> https://builds.apache.org/job/PreCommit-HADOOP-Build/8257/testReport/org.apache.hadoop.ipc/TestRPCWaitForProxy/testInterruptedWaitForProxy/
> {noformat}
> 2015-12-16 21:31:53,797 WARN  util.Shell 
> (Shell.java:checkIsBashSupported(718)) - Bash is not supported by the OS
> java.io.InterruptedIOException: java.lang.InterruptedException
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:930)
>   at org.apache.hadoop.util.Shell.run(Shell.java:838)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1117)
>   at org.apache.hadoop.util.Shell.checkIsBashSupported(Shell.java:716)
>   at org.apache.hadoop.util.Shell.(Shell.java:705)
>   at org.apache.hadoop.util.StringUtils.(StringUtils.java:79)
>   at 
> org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:639)
>   at 
> org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
>   at 
> org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
>   at 
> org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:803)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:773)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:646)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:397)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:350)
>   at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:330)
>   at 
> org.apache.hadoop.ipc.TestRPCWaitForProxy$RpcThread.run(TestRPCWaitForProxy.java:115)
> Caused by: java.lang.InterruptedException
>   at java.lang.Object.wait(Native Method)
>   at java.lang.Object.wait(Object.java:503)
>   at java.lang.UNIXProcess.waitFor(UNIXProcess.java:264)
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:920)
>   ... 15 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HADOOP-12652) Error message in Shell.checkIsBashSupported is misleading

2015-12-16 Thread Wei-Chiu Chuang (JIRA)

 [ 
https://issues.apache.org/jira/browse/HADOOP-12652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HADOOP-12652:
-
Attachment: HADOOP-12652.001.patch

Rev01: catch InterruptedIOException and log that the exception is due to 
interrupt.

> Error message in Shell.checkIsBashSupported is misleading
> -
>
> Key: HADOOP-12652
> URL: https://issues.apache.org/jira/browse/HADOOP-12652
> Project: Hadoop Common
>  Issue Type: Bug
>  Components: util
>Reporter: Wei-Chiu Chuang
>Assignee: Wei-Chiu Chuang
>  Labels: shell, supportability
> Attachments: HADOOP-12652.001.patch
>
>
> Shell.checkIsBashSupported() creates a bash shell command to verify if the 
> system supports bash. However, its error message is misleading, and the logic 
> should be updated.
> If the shell command throws an IOException, it does not imply the bash did 
> not run successfully. If the shell command process was interrupted, its 
> internal logic throws an InterruptedIOException, which is a subclass of 
> IOException.
> {code:title=Shell.checkIsBashSupported|borderStyle=solid}
> ShellCommandExecutor shexec;
> boolean supported = true;
> try {
>   String[] args = {"bash", "-c", "echo 1000"};
>   shexec = new ShellCommandExecutor(args);
>   shexec.execute();
> } catch (IOException ioe) {
>   LOG.warn("Bash is not supported by the OS", ioe);
>   supported = false;
> }
> {code}
> An example of it appeared in a recent jenkins job
> https://builds.apache.org/job/PreCommit-HADOOP-Build/8257/testReport/org.apache.hadoop.ipc/TestRPCWaitForProxy/testInterruptedWaitForProxy/
> {noformat}
> 2015-12-16 21:31:53,797 WARN  util.Shell 
> (Shell.java:checkIsBashSupported(718)) - Bash is not supported by the OS
> java.io.InterruptedIOException: java.lang.InterruptedException
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:930)
>   at org.apache.hadoop.util.Shell.run(Shell.java:838)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1117)
>   at org.apache.hadoop.util.Shell.checkIsBashSupported(Shell.java:716)
>   at org.apache.hadoop.util.Shell.(Shell.java:705)
>   at org.apache.hadoop.util.StringUtils.(StringUtils.java:79)
>   at 
> org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:639)
>   at 
> org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
>   at 
> org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
>   at 
> org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:803)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:773)
>   at 
> org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:646)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:397)
>   at org.apache.hadoop.ipc.RPC.waitForProtocolProxy(RPC.java:350)
>   at org.apache.hadoop.ipc.RPC.waitForProxy(RPC.java:330)
>   at 
> org.apache.hadoop.ipc.TestRPCWaitForProxy$RpcThread.run(TestRPCWaitForProxy.java:115)
> Caused by: java.lang.InterruptedException
>   at java.lang.Object.wait(Native Method)
>   at java.lang.Object.wait(Object.java:503)
>   at java.lang.UNIXProcess.waitFor(UNIXProcess.java:264)
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:920)
>   ... 15 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)