Rushabh S Shah created HDFS-8224:
------------------------------------
Summary: Any IOException in DataTransfer#run() will run diskError
thread even if it is not disk error
Key: HDFS-8224
URL: https://issues.apache.org/jira/browse/HDFS-8224
Project: Hadoop HDFS
Issue Type: Bug
Affects Versions: 2.6.0
Reporter: Rushabh S Shah
Fix For: 2.8.0
This happened in our 2.6 cluster.
One of the block and its metadata file were corrupted.
Namenode tried to copy that block to another datanode but failed with the
following stack trace:
2015-04-20 01:04:04,421
[org.apache.hadoop.hdfs.server.datanode.DataNode$DataTransfer@11319bc4] WARN
datanode.DataNode: DatanodeRegistration(a.b.c.d,
datanodeUuid=e8c5135c-9b9f-4d05-a59d-e5525518aca7, infoPort=1006,
infoSecurePort=0, ipcPort=8020,
storageInfo=lv=-56;cid=CID-e7f736ac-158e-446e-9091-7e66f3cddf3c;nsid=358250775;c=1428471998571):Failed
to transfer BP-xxx-1351096255769:blk_2697560713_1107108863999 to
a1.b1.c1.d1:1004 got
java.io.IOException: Could not create DataChecksum of type 0 with
bytesPerChecksum 0
at
org.apache.hadoop.util.DataChecksum.newDataChecksum(DataChecksum.java:125)
at
org.apache.hadoop.hdfs.server.datanode.BlockMetadataHeader.readHeader(BlockMetadataHeader.java:175)
at
org.apache.hadoop.hdfs.server.datanode.BlockMetadataHeader.readHeader(BlockMetadataHeader.java:140)
at
org.apache.hadoop.hdfs.server.datanode.BlockMetadataHeader.readDataChecksum(BlockMetadataHeader.java:102)
at
org.apache.hadoop.hdfs.server.datanode.BlockSender.<init>(BlockSender.java:287)
at
org.apache.hadoop.hdfs.server.datanode.DataNode$DataTransfer.run(DataNode.java:1989)
at java.lang.Thread.run(Thread.java:722)
The catch block in DataTransfer#run method will treat every IOException as disk
error fault and run disk errror
catch (IOException ie) {
LOG.warn(bpReg + ":Failed to transfer " + b + " to " +
targets[0] + " got ", ie);
// check if there are any disk problem
checkDiskErrorAsync();
}
This block was never scanned by BlockPoolSliceScanner otherwise it would have
reported as corrupt block.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)