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

Uma Maheswara Rao G reopened HDFS-5697:
---------------------------------------


> connection leak in DFSInputStream
> ---------------------------------
>
>                 Key: HDFS-5697
>                 URL: https://issues.apache.org/jira/browse/HDFS-5697
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Haitao Yao
>         Attachments: HDFS-5697.patch, HDFS-5697.patch
>
>
> While getting the BlockReader from DFSInputStream, if the cache is miss, the 
> DFSInputStream creates a new peer. But if error occured when creating the new 
> blockreader with the give peer and IOException is thrown, the created peer is 
> not closed and will cause too many CLOSE-WAIT status.
> here's the stacktrace:
> java.io.IOException: Got error for OP_READ_BLOCK, self=/10.130.100.32:26657, 
> remote=/10.130.100.32:50010, for file 
> /hbase/STAT_RESULT_SALT/d17e9cf1d1de34910bc6724c7cc21ed8/_0/c75770dbed6444488b609385e8bc9e0d,
>  for pool BP-2041309608-10.130.100.157-1361861188734 block 
> -7893680960325255689_107620083
>         at 
> org.apache.hadoop.hdfs.RemoteBlockReader2.checkSuccess(RemoteBlockReader2.java:429)
>         at 
> org.apache.hadoop.hdfs.RemoteBlockReader2.newBlockReader(RemoteBlockReader2.java:394)
>         at 
> org.apache.hadoop.hdfs.BlockReaderFactory.newBlockReader(BlockReaderFactory.java:137)
>         at 
> org.apache.hadoop.hdfs.DFSInputStream.getBlockReader(DFSInputStream.java:1103)
>         at 
> org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:538)
>         at 
> org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:750)
>         at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:794)
>         at java.io.DataInputStream.read(DataInputStream.java:149)
>         at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:192)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1409)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockDataInternal(HFileBlock.java:1921)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockData(HFileBlock.java:1703)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:338)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2$EncodedScannerV2.seekTo(HFileReaderV2.java:997)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:229)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:145)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:165)
> So there should be a catch clause at the end of the function to check if 
> IOException is thrown , the peer should be closed.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to