[ https://issues.apache.org/jira/browse/HADOOP-9505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vinay updated HADOOP-9505: -------------------------- Resolution: Duplicate Status: Resolved (was: Patch Available) > Specifying checksum type to NULL can cause write failures with AIOBE > -------------------------------------------------------------------- > > Key: HADOOP-9505 > URL: https://issues.apache.org/jira/browse/HADOOP-9505 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Affects Versions: 2.1.0-beta > Reporter: Uma Maheswara Rao G > Assignee: Vinay > Priority: Minor > Attachments: HADOOP-9505.patch > > > I have created a file with checksum disable option and I am seeing > ArrayIndexOutOfBoundsException. > {code} > out = fs.create(fileName, FsPermission.getDefault(), flags, fs.getConf() > .getInt("io.file.buffer.size", 4096), replFactor, fs > .getDefaultBlockSize(fileName), null, ChecksumOpt.createDisabled()); > {code} > See the trace here: > {noformat} > java.lang.ArrayIndexOutOfBoundsException: 0 > at org.apache.hadoop.fs.FSOutputSummer.int2byte(FSOutputSummer.java:178) > at > org.apache.hadoop.fs.FSOutputSummer.writeChecksumChunk(FSOutputSummer.java:162) > at org.apache.hadoop.fs.FSOutputSummer.write1(FSOutputSummer.java:106) > at org.apache.hadoop.fs.FSOutputSummer.write(FSOutputSummer.java:92) > at > org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:54) > at java.io.DataOutputStream.write(DataOutputStream.java:90) > at org.apache.hadoop.hdfs.DFSTestUtil.createFile(DFSTestUtil.java:261) > at > org.apache.hadoop.hdfs.TestReplication.testBadBlockReportOnTransfer(TestReplication.java:174) > {noformat} > In FSOutputSummer#int2byte will not check any bytes length, so, do you think > we have to to check the length then only we call this in CRC NULL case, as > there will not be any checksum bytes? > {code} > static byte[] int2byte(int integer, byte[] bytes) { > bytes[0] = (byte)((integer >>> 24) & 0xFF); > bytes[1] = (byte)((integer >>> 16) & 0xFF); > bytes[2] = (byte)((integer >>> 8) & 0xFF); > bytes[3] = (byte)((integer >>> 0) & 0xFF); > return bytes; > } > {code} -- This message was sent by Atlassian JIRA (v6.1#6144)