You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (Jira)" <ji...@apache.org> on 2020/07/10 18:36:00 UTC
[jira] [Commented] (HBASE-24673) TransitionRegionStateProcedure of
non-meta regions should yield when meta is unavailable
[ https://issues.apache.org/jira/browse/HBASE-24673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17155666#comment-17155666 ]
Nick Dimiduk commented on HBASE-24673:
--------------------------------------
Here's a stack trace collected from a stuck PEWorker thread, taken at the point when the worker pool is expanding.
{noformat}
Thread 175 (PEWorker-1):
State: TIMED_WAITING
Blocked count: 3136
Waited count: 4122
Stack:
java.base@11.0.6/java.lang.Object.wait(Native Method)
app//org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:168)
app//org.apache.hadoop.hbase.client.HTable.put(HTable.java:539)
app//org.apache.hadoop.hbase.master.assignment.RegionStateStore.updateRegionLocation(RegionStateStore.java:224)
app//org.apache.hadoop.hbase.master.assignment.RegionStateStore.updateUserRegionLocation(RegionStateStore.java:218)
app//org.apache.hadoop.hbase.master.assignment.RegionStateStore.updateRegionLocation(RegionStateStore.java:156)
app//org.apache.hadoop.hbase.master.assignment.AssignmentManager.transitStateAndUpdate(AssignmentManager.java:1743)
app//org.apache.hadoop.hbase.master.assignment.AssignmentManager.regionOpening(AssignmentManager.java:1758)
app//org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure.openRegion(TransitRegionStateProcedure.java:211)
app//org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure.executeFromState(TransitRegionStateProcedure.java:357)
app//org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure.executeFromState(TransitRegionStateProcedure.java:102)
app//org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:194)
app//org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure.execute(TransitRegionStateProcedure.java:324)
app//org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure.execute(TransitRegionStateProcedure.java:102)
app//org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:962)
app//org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1667)
app//org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1414)
app//org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$1100(ProcedureExecutor.java:77)
app//org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1984)
{noformat}
> TransitionRegionStateProcedure of non-meta regions should yield when meta is unavailable
> ----------------------------------------------------------------------------------------
>
> Key: HBASE-24673
> URL: https://issues.apache.org/jira/browse/HBASE-24673
> Project: HBase
> Issue Type: Bug
> Components: Region Assignment
> Reporter: Nick Dimiduk
> Assignee: Nick Dimiduk
> Priority: Major
>
> One observation from HBASE-24526 is that while meta is unavailable, other region movement procedures are getting stuck on meta RPCs. Let's make it so that non-meta transitions check the state of meta before attempting any RPCs. If meta is known unavailable, release the thread back to the scheduler.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)