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

stack commented on HBASE-14317:
-------------------------------

The ringbuffer processor is blocked waiting on outstanding syncs to come in

{code}
"regionserver/r12s16.sjc.aristanetworks.com/172.24.32.16:9104.append-pool1-t1" 
#140 prio=5 os_prio=0 tid=0x00007fbf5cc61800 nid=0xb2 in Object.wait() 
[0x00007fbf3a115000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:460)
        at 
org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.attainSafePoint(FSHLog.java:2024)
        - locked <0x0000000548756b60> (a java.lang.Object)
        at 
org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.onEvent(FSHLog.java:1999)
        at 
org.apache.hadoop.hbase.regionserver.wal.FSHLog$RingBufferEventHandler.onEvent(FSHLog.java:1910)
        at 
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

All processing of the ringbuffer is held up until we attain safe point -- i.e. 
all syncers must come home (This is by design -- we are trying to roll logs so 
no more edits allowed in). Same 'hang' is to be found over in HBASE-13974 
looking in its jstack1.txt. The 'fix' over in HBASE-13974 releases threads that 
are waiting on their sequenceid to come home; they are in the ring buffer 
behind the current point-of-processing/blockage. It looks like the blockage 
would persist after HBASE-13974 timeout 'fires'. The [~eclark] patch attached 
here where we timeout the root block would be a better workaround IMO till 
proper fix.

Still at trying to manufacture the block 'naturally'.

> Stuck FSHLog: bad disk (HDFS-8960) and can't roll WAL
> -----------------------------------------------------
>
>                 Key: HBASE-14317
>                 URL: https://issues.apache.org/jira/browse/HBASE-14317
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 1.1.1
>            Reporter: stack
>            Priority: Critical
>         Attachments: 14317.test.txt, HBASE-14317.patch, [Java] RS stuck on 
> WAL sync to a dead DN - Pastebin.com.html, raw.php, subset.of.rs.log
>
>
> hbase-1.1.1 and hadoop-2.7.1
> We try to roll logs because can't append (See HDFS-8960) but we get stuck. 
> See attached thread dump and associated log. What is interesting is that 
> syncers are waiting to take syncs to run and at same time we want to flush so 
> we are waiting on a safe point but there seems to be nothing in our ring 
> buffer; did we go to roll log and not add safe point sync to clear out 
> ringbuffer?
> Needs a bit of study. Try to reproduce.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to