[ https://issues.apache.org/jira/browse/HBASE-8192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13618180#comment-13618180 ]
Hadoop QA commented on HBASE-8192: ---------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12576253/8192-v5-with-a-test-case.txt against trunk revision . {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop 2.0 profile. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {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:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFiles org.apache.hadoop.hbase.mapreduce.TestSecureLoadIncrementalHFiles Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/5069//console This message is automatically generated. > wrong logic in HRegion.bulkLoadHFiles(List) > ------------------------------------------- > > Key: HBASE-8192 > URL: https://issues.apache.org/jira/browse/HBASE-8192 > Project: HBase > Issue Type: Bug > Components: regionserver > Affects Versions: 0.94.1, 0.94.2, 0.94.3, 0.94.4, 0.94.5 > Reporter: Chenghao Jiang > Labels: patch > Fix For: 0.94.7 > > Attachments: 8192.txt, 8192-v2-with-a-test-case.txt, > 8192-v3-with-a-test-case.txt, 8192-v4-with-a-test-case.txt, > 8192-v5-with-a-test-case.txt > > > the wrong logic is here: > when a ColumnFamily does not exist, it gets a null store object, then > ioes.add(ioe); failures.add(p) > but the code below, if (failures.size() != 0), it prints a warn log and > return false, so it will never go into the code if (ioes.size() != 0) below, > and IOException will not be thrown, then the client will keep retry forever. > there is the same situation when doing store.assertBulkLoadHFileOk, if any > WrongRegionException is caught and failures.add(p), then all the other > IOException thrown by assertBulkLoadHFileOk will be ignored. > so i think if (failures.size() != 0) {} should be dealt with after if > (ioes.size() !=0) {} > {code} > for (Pair<byte[], String> p : familyPaths) { > byte[] familyName = p.getFirst(); > String path = p.getSecond(); > Store store = getStore(familyName); > if (store == null) { > IOException ioe = new DoNotRetryIOException( > "No such column family " + Bytes.toStringBinary(familyName)); > ioes.add(ioe); > failures.add(p); > } else { > try { > store.assertBulkLoadHFileOk(new Path(path)); > } catch (WrongRegionException wre) { > // recoverable (file doesn't fit in region) > failures.add(p); > } catch (IOException ioe) { > // unrecoverable (hdfs problem) > ioes.add(ioe); > } > } > } > // validation failed, bail out before doing anything permanent. > if (failures.size() != 0) { > StringBuilder list = new StringBuilder(); > for (Pair<byte[], String> p : failures) { > list.append("\n").append(Bytes.toString(p.getFirst())).append(" : ") > .append(p.getSecond()); > } > // problem when validating > LOG.warn("There was a recoverable bulk load failure likely due to a" + > " split. These (family, HFile) pairs were not loaded: " + list); > return false; > } > // validation failed because of some sort of IO problem. > if (ioes.size() != 0) { > LOG.error("There were IO errors when checking if bulk load is ok. " + > "throwing exception!"); > throw MultipleIOException.createIOException(ioes); > } > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira