Erik Ingle created HBASE-12642:
----------------------------------

             Summary: 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
            Priority: Minor


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