[
https://issues.apache.org/jira/browse/HBASE-18837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16747495#comment-16747495
]
kevin su edited comment on HBASE-18837 at 1/20/19 4:43 PM:
-----------------------------------------------------------
{{ScheduledExecutorService executor won't not retry to put, if we don't catch
the Exception.}}
{{It will stuck by exception.}}
{{Hope this patch help, btw, could i have opportunity to be assigned this
issue.}}
{{I will try my best to solved it.}}
>From dbeb493b103ea874ce8f65fe084692dc5de53bc0 Mon Sep 17 00:00:00 2001
From: Kevin <[email protected]>
Date: Mon, 21 Jan 2019 00:23:56 +0800
Subject: [PATCH] HBASE-18837 Handle re-try the put exception
---
.../main/java/org/apache/hadoop/hbase/client/HTableMultiplexer.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTableMultiplexer.java
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTableMultiplexer.java
index e6b061e45f..32f5b03423 100644
---
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTableMultiplexer.java
+++
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTableMultiplexer.java
@@ -513,8 +513,10 @@ public class HTableMultiplexer {
boolean succ = false;
try {
succ = FlushWorker.this.getMultiplexer().put(tableName, failedPut, retryCount);
- } finally {
- FlushWorker.this.getRetryInQueue().decrementAndGet();
+ } catch (Throwable t) {
+ LOG.debug("Exception by re-trying the Put");
+ } finally {
+ FlushWorker.this.getRetryInQueue().decrementAndGet();
if (!succ) {
FlushWorker.this.getTotalFailedPutCount().incrementAndGet();
}
--
2.16.2.windows.1
was (Author: pingsutw):
{{ScheduledExecutorService executor won't not retry to put, if we don't catch
the Exception.}}
{{It will stuck by exception.}}
{{Hope this patch help, btw, could i have opportunity to be assigned this
issue.}}
{{I will try my best to solved it.}}
> HTableMultiplexer behavior during regions split
> -----------------------------------------------
>
> Key: HBASE-18837
> URL: https://issues.apache.org/jira/browse/HBASE-18837
> Project: HBase
> Issue Type: Improvement
> Components: Client
> Affects Versions: 1.1.2
> Reporter: chausson
> Priority: Minor
>
> HTableMultiplexer class mentions following in the javadoc : "If any queue is
> full, the HTableMultiplexer starts to drop the Put requests for that
> particular queue."
> This could be improved by replacing following code in
> HTableMultiplexer.resubmitFailedPut() method :
> {code:title=HTableMultiplexer}
> try {
> succ = FlushWorker.this.getMultiplexer().put(tableName, failedPut,
> retryCount);
> } finally {
> FlushWorker.this.getRetryInQueue().decrementAndGet();
> if (!succ) {
> FlushWorker.this.getTotalFailedPutCount().incrementAndGet();
> }
> }
> {code}
> With :
> {code}
> try {
> succ = FlushWorker.this.getMultiplexer().put(tableName, failedPut,
> retryCount);
> if (!succ) {
> if (!resubmitFailedPut(ps, oldLoc)) {
>
> FlushWorker.this.getTotalFailedPutCount().incrementAndGet();
> }
> }
> } finally {
> FlushWorker.this.getRetryInQueue().decrementAndGet();
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)