hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-7469) add a standard handler for socket connection problems which improves diagnostics
Date Sat, 23 Jul 2011 19:53:09 GMT

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

Hadoop QA commented on HADOOP-7469:

+1 overall.  Here are the results of testing the latest attachment 
  against trunk revision 1149760.

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 3 new or modified tests.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit

    +1 core tests.  The patch passed core unit tests.

    +1 system test framework.  The patch passed system test framework compile.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/761//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/761//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/761//console

This message is automatically generated.

> add a standard handler for socket connection problems which improves diagnostics
> --------------------------------------------------------------------------------
>                 Key: HADOOP-7469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: util
>    Affects Versions:
>            Reporter: Steve Loughran
>            Priority: Minor
>              Labels: debugging
>         Attachments: HADOOP-7469.patch
>   Original Estimate: 2h
>  Remaining Estimate: 2h
> connection refused, connection timed out, no route to host, etc, are classic IOExceptions
that can be raised in a lot of parts of the code. The standard JDK exceptions are useless
for debugging as they 
> # don't include the destination (host, port) that can be used in diagnosing service dead/blocked
> # don't include any source hostname that can be used to handle routing issues
> # assume the reader understands the TCP stack.
> It's obvious from the -user lists that a lot of people hit these problems and don't know
how to fix them. Sometimes the source has been patched to insert the diagnostics, but it may
be convenient to have a single method to translate some
> {code}
> SocketException processIOException(SocketException e, String destHost, int destPort)
>   String localhost = getLocalHostname();
>   String details = "From "+ localhost +" to "+ desthost + ":"+destPort;
>   if (e instanceof ConnectException) {
>     return new ConnectException(details 
>             + " -- see http://wiki.apache.org/hadoop/ConnectionRefused --" + e, e);
>   }
>   if (e instanceof UnknownHostException) {
>     return new UnknownHostException(details 
>             + " -- see http://wiki.apache.org/hadoop/UnknownHost --" + e, e);
>   }
>   // + handlers for other common socket exceptions
> //and a default that returns an unknown class unchanged
>   return e;
> }
> {code}
> Testing: try to connect to an unknown host, a local port that isn't live, etc. It's hard
to replicate all failures consistently. It may be simpler just to verify that if you pass
in a specific exception, the string is expanded and the class is unchanged.
> This code could then be patched in to places where IO takes place. Note that Http Components
and HttpClient libs already add some destination details on some operation failures, with
their own HttpException tree: it's simplest to leave these alone.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message