[ 
https://issues.apache.org/jira/browse/HADOOP-13824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15683714#comment-15683714
 ] 

Rob Vesse commented on HADOOP-13824:
------------------------------------

Yes this patch worked for me, I was able to see the underlying error which was 
the following:

{noformat}
16/11/21 06:16:41 WARN util.NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
-cat: Caught exception without message
java.nio.channels.UnresolvedAddressException
        at sun.nio.ch.Net.checkAddress(Net.java:157)
        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:703)
        at 
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
        at 
org.apache.hadoop.hdfs.DFSClient.newConnectedPeer(DFSClient.java:3436)
        at 
org.apache.hadoop.hdfs.BlockReaderFactory.nextTcpPeer(BlockReaderFactory.java:777)
        at 
org.apache.hadoop.hdfs.BlockReaderFactory.getRemoteBlockReaderFromTcp(BlockReaderFactory.java:694)
        at 
org.apache.hadoop.hdfs.BlockReaderFactory.build(BlockReaderFactory.java:355)
        at 
org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:656)
        at 
org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:882)
        at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:934)
        at java.io.DataInputStream.read(DataInputStream.java:111)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:85)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:59)
        at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:119)
        at 
org.apache.hadoop.fs.shell.Display$Cat.printToStdout(Display.java:107)
        at org.apache.hadoop.fs.shell.Display$Cat.processPath(Display.java:102)
        at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:317)
        at 
org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:289)
        at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:271)
        at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:255)
        at 
org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:201)
        at org.apache.hadoop.fs.shell.Command.run(Command.java:165)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:287)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:345)
Usage: hadoop fs [generic options] -cat [-ignoreCrc] <src> ...
{noformat}

This was the actual error I was expecting to see

> FsShell can suppress the real error if no error message is present
> ------------------------------------------------------------------
>
>                 Key: HADOOP-13824
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13824
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 2.7.1, 2.7.3
>            Reporter: Rob Vesse
>            Assignee: John Zhuge
>              Labels: supportability
>         Attachments: HADOOP-13824.001.patch
>
>
> The {{FsShell}} error handling assumes in {{displayError()}} that the 
> {{message}} argument is not {{null}}. However in the case where it is this 
> leads to a NPE which results in suppressing the actual error information 
> since a higher level of error handling kicks in and just dumps the stack 
> trace of the NPE instead.
> e.g.
> {noformat}
> Exception in thread "main" java.lang.NullPointerException
>       at org.apache.hadoop.fs.FsShell.displayError(FsShell.java:304)
>       at org.apache.hadoop.fs.FsShell.run(FsShell.java:289)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
>       at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
> {noformat}
> This is deeply unhelpful because depending on what the underlying error was 
> there may be no stack dumped/logged for it (as HADOOP-7114 provides) since 
> {{FsShell}} doesn't explicitly dump traces for {{IllegalArgumentException}} 
> which appears to be the underlying cause of my issue.  Line 289 is where 
> {{displayError()}} is called for {{IllegalArgumentException}} handling and 
> that catch clause does not log the error.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to