[ https://issues.apache.org/jira/browse/HDFS-12953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436895#comment-16436895 ]
Xiao Chen commented on HDFS-12953: ---------------------------------- Attached a test to show how this can fail. It's strictly limited to XORRawDecoder. Still not sure how exactly this will fail in a real scenario, but seems like one need to create the decoder with a erroneous numDataUnits / numParityUnits (e.g. 6/3 rather than 2/1), then decode with an unrecoverable number of failures (e.g. remove 2). Next step is probably find where in code we do this. Seems like in the initial report RS63 was used. If that's true then using xor decoder is very wrong... [~eddyxu] does this ring any bells on past issues? Any scenario that would use a wrong coder to decode? > XORRawDecoder.doDecode throws NullPointerException > -------------------------------------------------- > > Key: HDFS-12953 > URL: https://issues.apache.org/jira/browse/HDFS-12953 > Project: Hadoop HDFS > Issue Type: Bug > Components: erasure-coding > Affects Versions: 3.0.0 > Reporter: Lei (Eddy) Xu > Assignee: Xiao Chen > Priority: Major > Attachments: HDFS-12953.test.patch > > > Thanks [~danielpol] report on HDFS-12860. > {noformat} > 17/11/30 04:19:55 INFO mapreduce.Job: map 0% reduce 0% > 17/11/30 04:20:01 INFO mapreduce.Job: Task Id : > attempt_1512036058655_0003_m_000002_0, Status : FAILED > Error: java.lang.NullPointerException > at > org.apache.hadoop.io.erasurecode.rawcoder.XORRawDecoder.doDecode(XORRawDecoder.java:83) > at > org.apache.hadoop.io.erasurecode.rawcoder.RawErasureDecoder.decode(RawErasureDecoder.java:106) > at > org.apache.hadoop.io.erasurecode.rawcoder.RawErasureDecoder.decode(RawErasureDecoder.java:170) > at > org.apache.hadoop.hdfs.StripeReader.decodeAndFillBuffer(StripeReader.java:423) > at > org.apache.hadoop.hdfs.StatefulStripeReader.decode(StatefulStripeReader.java:94) > at org.apache.hadoop.hdfs.StripeReader.readStripe(StripeReader.java:382) > at > org.apache.hadoop.hdfs.DFSStripedInputStream.readOneStripe(DFSStripedInputStream.java:318) > at > org.apache.hadoop.hdfs.DFSStripedInputStream.readWithStrategy(DFSStripedInputStream.java:391) > at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:813) > at java.io.DataInputStream.read(DataInputStream.java:149) > at > org.apache.hadoop.examples.terasort.TeraInputFormat$TeraRecordReader.nextKeyValue(TeraInputFormat.java:257) > at > org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:563) > at > org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) > at > org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:794) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342) > at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:422) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1962) > at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168) > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org