hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12642) LoadIncrementalHFiles does not throw exception after hitting hbase.bulkload.retries.number setting
Date Sat, 06 Dec 2014 05:17:13 GMT

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

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

FAILURE: Integrated in HBase-0.98 #723 (See [https://builds.apache.org/job/HBase-0.98/723/])
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)

Mime
View raw message