You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Xiaolin Ha (Jira)" <ji...@apache.org> on 2021/11/24 07:50:00 UTC

[jira] [Resolved] (HBASE-26480) Close NamedQueueRecorder to allow HMaster/RS to shutdown gracefully

     [ https://issues.apache.org/jira/browse/HBASE-26480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xiaolin Ha resolved HBASE-26480.
--------------------------------
    Fix Version/s: 1.8.0
       Resolution: Fixed

Merged to branch-1, thanks [~shahrs87]  for contributing, and thanks [~zhangduo] for reviewing.

> Close NamedQueueRecorder to allow HMaster/RS to shutdown gracefully
> -------------------------------------------------------------------
>
>                 Key: HBASE-26480
>                 URL: https://issues.apache.org/jira/browse/HBASE-26480
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.7.0
>            Reporter: Rushabh Shah
>            Assignee: Rushabh Shah
>            Priority: Major
>             Fix For: 1.8.0
>
>
> Saw one case in our production cluster where RS was not exiting. Saw this non-daemon thread in hung RS stack trace:
> {noformat}
> "main.slowlog.append-pool-pool1-t1" #26 prio=5 os_prio=31 tid=0x00007faf23bf7800 nid=0x6d07 waiting on condition [0x0000700003f4d000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00000004039e3840> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at com.lmax.disruptor.BlockingWaitStrategy.waitFor(BlockingWaitStrategy.java:47)
>         at com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
>         at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
>         at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
>         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)
> {noformat}
>         
> This is coming from [NamedQueueRecorder|https://github.com/apache/hbase/blob/branch-1/hbase-server/src/main/java/org/apache/hadoop/hbase/namequeues/NamedQueueRecorder.java#L65] implementation. 
> This bug doesn't exists in branch-2 and master since the Disruptor initialization has changed and we set daemon=true also. See [this code|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/namequeues/NamedQueueRecorder.java#L68]
>  
> FYI [~vjasani] [~zhangduo]



--
This message was sent by Atlassian Jira
(v8.20.1#820001)