[ 
https://issues.apache.org/jira/browse/HBASE-12642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14236619#comment-14236619
 ] 

Hudson commented on HBASE-12642:
--------------------------------

SUCCESS: Integrated in HBase-0.98-on-Hadoop-1.1 #690 (See 
[https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/690/])
HBASE-12642 LoadIncrementalHFiles does not throw exception after hitting 
hbase.bulkload.retries.number setting (tedyu: rev 
d9517a1d5848709e97ebc6df8c9f54ea8019592d)
* 
hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java


> LoadIncrementalHFiles does not throw exception after hitting 
> hbase.bulkload.retries.number setting
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-12642
>                 URL: https://issues.apache.org/jira/browse/HBASE-12642
>             Project: HBase
>          Issue Type: Bug
>          Components: mapreduce
>    Affects Versions: 0.98.1
>         Environment: RedHat 6.6
> Java 1.7.0_65
> HBase 0.98.1-cdh5.1.0
> Hadoop 2.3.0-mr1-cdh5.1.0
>            Reporter: Erik Ingle
>            Assignee: Ted Yu
>            Priority: Minor
>             Fix For: 1.0.0, 2.0.0, 0.98.9
>
>         Attachments: 12642-v1.txt
>
>
> Related to [HBASE-8367|https://issues.apache.org/jira/browse/HBASE-8367] 
> there is no programmatic way to determine if the 
> hbase.bulkload.retries.number value has been hit.  Callers of doBulkLoad have 
> no way to determine other than log examination whether the bulk load was 
> actually successful.
> Here is the relevant code sections:
> {code:title=LoadIncrementalHFiles.java|borderStyle=solid}
> public void doBulkLoad ...
> {
>     try {
>     ...
>         if (maxRetries != 0 && count >= maxRetries) {
>             LOG.error("Retry attempted " + count + " times without 
> completing, bailing out");
>             return;
>         }
>     ...
>     } finally {
>     ...
>       pool.shutdown();
>       if (queue != null && !queue.isEmpty()) {
>         StringBuilder err = new StringBuilder();
>         err.append("-------------------------------------------------\n");
>         err.append("Bulk load aborted with some files not yet loaded:\n");
>         err.append("-------------------------------------------------\n");
>         for (LoadQueueItem q : queue) {
>           err.append("  ").append(q.hfilePath).append('\n');
>         }
>         LOG.error(err);
>       }
>     }
>     if (queue != null && !queue.isEmpty()) {
>         throw new RuntimeException("Bulk load aborted with some files not yet 
> loaded."
>           + "Please check log for more details.");
> }
> {code}
> One possible solution is to move the throw new RuntimeException clause at the 
> end into the finally block.  The exception is currently never thrown for max 
> retries due to the return in the initial if statement.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to