hadoop-hdfs-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] (HDFS-5671) When client request block to DataNode and "java.io.IOException" occurs, the fail TCP socket is not closed (in status "CLOSE_WAIT" with port 1004 of DataNode)
Date Sat, 28 Dec 2013 05:17:50 GMT

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

Hadoop QA commented on HDFS-5671:

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  against trunk revision .

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:red}-1 tests included{color}.  The patch doesn't appear to include any new or modified
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:green}+1 javadoc{color}.  The javadoc tool did not generate any warning messages.

    {color:green}+1 eclipse:eclipse{color}.  The patch built with eclipse:eclipse.

    {color:green}+1 findbugs{color}.  The patch does not introduce any new Findbugs (version
1.3.9) warnings.

    {color:green}+1 release audit{color}.  The applied patch does not increase the total number
of release audit warnings.

    {color:red}-1 core tests{color}.  The patch failed these unit tests in hadoop-hdfs-project/hadoop-hdfs:


    {color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HDFS-Build/5798//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5798//console

This message is automatically generated.

> When client  request block to DataNode and "java.io.IOException" occurs, the fail TCP
socket is not closed (in status "CLOSE_WAIT" with port 1004 of DataNode)
> --------------------------------------------------------------------------------------------------------------------------------------------------------------
>                 Key: HDFS-5671
>                 URL: https://issues.apache.org/jira/browse/HDFS-5671
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs-client
>    Affects Versions: 2.2.0
>         Environment: hadoop-2.2.0
> java version "1.6.0_31"
> Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
> Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
> Linux 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64
>            Reporter: JamesLi
>            Priority: Critical
>         Attachments: 5671.patch, 5671v1.patch, 5671v2.patch, 5671v3.patch
> lsof -i TCP:1004 | grep -c CLOSE_WAIT
> 18235
> When client request a file's block to DataNode:1004. If request fail because "java.io.IOException:
Got error for OP_READ_BLOCK,Block token is expired." Occurs  and the TCP socket that regionserver
using is not closed.
> I think the problem above is in DatanodeInfo blockSeekTo(long target)  of Class DFSInputStream

> The connection client using is BlockReader: 
>         blockReader = getBlockReader(targetAddr, chosenNode, src, blk,
>             accessToken, offsetIntoBlock, blk.getNumBytes() - offsetIntoBlock,
>             buffersize, verifyChecksum, dfsClient.clientName);
> In DFSInputStream.blockSeekTo()-line 533,invoke getBlockReader() which wil generate a
peer use newTcpPeer(dnAddr) -line 1107,when BlockReaderFactory.newBlockReader throw IOException,the
peer will not be closed which will cause a CLOSE_WAIT connection. 
> In our test,when datanode get a InvalidToken exception in DataXceiver.checkAccess(),it
will close the connection.At regionserver side, in RemoteBlockReader2.newBlockReader(),checkSuccess()
will throw a InvalidBlockTokenException, DFSInputStream.blockSeekTo() will catch the exception,
but the connection is NOT closed, it become CLOSE_WAIT.

This message was sent by Atlassian JIRA

View raw message