You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zheng Wang (Jira)" <ji...@apache.org> on 2021/06/24 04:31:00 UTC

[jira] [Comment Edited] (HBASE-26027) The calling of HTable.batch blocked at AsyncRequestFutureImpl.waitUntilDone caused by ArrayStoreException

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

Zheng Wang edited comment on HBASE-26027 at 6/24/21, 4:30 AM:
--------------------------------------------------------------

Occur at 2.2.2, and i think 2.x all exists(checked 2.3.3 yet). [~reidchan]


was (Author: filtertip):
Occur at 2.2.2, and i think 2.x all exists(checked 2.3.3 yet).

> The calling of HTable.batch blocked at AsyncRequestFutureImpl.waitUntilDone caused by ArrayStoreException
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-26027
>                 URL: https://issues.apache.org/jira/browse/HBASE-26027
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>            Reporter: Zheng Wang
>            Assignee: Zheng Wang
>            Priority: Major
>
> The batch api of HTable contains a param named results to store result or exception, its type is Object[].
> If user pass an array with other type, eg: org.apache.hadoop.hbase.client.Result, then the ArrayStoreException will occur in AsyncRequestFutureImpl.updateResult, then the AsyncRequestFutureImpl.decActionCounter will be skipped, then in the AsyncRequestFutureImpl.waitUntilDone we will stuck at here checking the actionsInProgress again and again, forever.
> It is better to add an cutoff calculated by operationTimeout, instead of only depend on the value of actionsInProgress.
> BTW, this issue only for 2.x, since 3.x the implement has refactored.
> {code:java}
> [ERROR] [2021/06/22 23:23:00,676] hconnection-0x6b927fb-shared-pool3-t1 - id=1 error for test processing localhost,16020,1624343786295
> java.lang.ArrayStoreException: org.apache.hadoop.hbase.DoNotRetryIOException
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.updateResult(AsyncRequestFutureImpl.java:1242)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.trySetResultSimple(AsyncRequestFutureImpl.java:1087)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.setError(AsyncRequestFutureImpl.java:1021)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.manageError(AsyncRequestFutureImpl.java:683)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.receiveGlobalFailure(AsyncRequestFutureImpl.java:716)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.access$1500(AsyncRequestFutureImpl.java:69)
> 	at org.apache.hadoop.hbase.client.AsyncRequestFutureImpl$SingleServerRequestRunnable.run(AsyncRequestFutureImpl.java:219)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> 	at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> [INFO ] [2021/06/22 23:23:10,375] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:23:20,378] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:23:30,384] main - #1, waiting for 10  actions to finish on table: 
> [INFO ] [2021/06/22 23:23:40,387] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:23:50,397] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:24:00,400] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:24:10,408] main - #1, waiting for 10  actions to finish on table: test
> [INFO ] [2021/06/22 23:24:20,413] main - #1, waiting for 10  actions to finish on table: test
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)