[
https://issues.apache.org/jira/browse/HBASE-15436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15218554#comment-15218554
]
Anoop Sam John commented on HBASE-15436:
----------------------------------------
Thanks Nicholas
bq.iirc, A long time ago, the buffer was attached to the Table object, so the
policy (or at least the objective :-)) when one of the puts had failed (i.e.
reached the max retry number) was simple: all the operations currently in the
buffer were considered as failed as well, even if we had not even tried to send
them. As a consequence the buffer was empty after the failure of a single put.
It was then up to the client to continue or not. May be we should do the same
with the buffered mutator, for all cases, close or not? I haven't looked at
the bufferedMutator code, but I can have a look it you whish [~anoop.hbase].
Both BufferedMutator and normal Table uses same AycnProcess path. Am not
remembering our old way of fail all when one failed(after max retries).
Also I feel, we need to add the closed check in the loop of retry.. Some how
user called close on the BufferedMutator. Ya it has to be a graceful close.
But not like mins user has to wait for the close.. We are in a trial and that
failed, and at least before the next retry, we need to see the close flag.
> BufferedMutatorImpl.flush() appears to get stuck
> ------------------------------------------------
>
> Key: HBASE-15436
> URL: https://issues.apache.org/jira/browse/HBASE-15436
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 1.0.2
> Reporter: Sangjin Lee
> Attachments: hbaseException.log, threaddump.log
>
>
> We noticed an instance where the thread that was executing a flush
> ({{BufferedMutatorImpl.flush()}}) got stuck when the (local one-node) cluster
> shut down and was unable to get out of that stuck state.
> The setup is a single node HBase cluster, and apparently the cluster went
> away when the client was executing flush. The flush eventually logged a
> failure after 30+ minutes of retrying. That is understandable.
> What is unexpected is that thread is stuck in this state (i.e. in the
> {{flush()}} call). I would have expected the {{flush()}} call to return after
> the complete failure.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)