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

Jean-Daniel Cryans commented on HBASE-2447:
-------------------------------------------

Fair enough.

About the patch, instead of creating a new attribute in the thread, would it be 
possible to use HLog.closed? Or check if logSyncerThread.isAlive? In any case, 
I'm not satisfied by those kind of solutions. What happens if the thread is 
instead set closing the moment after the check is done? We would still be 
hanging on signal? It's a shame that we can't timeout that method.

> LogSyncer.addToSyncQueue doesn't check if syncer is still running before 
> waiting
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-2447
>                 URL: https://issues.apache.org/jira/browse/HBASE-2447
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: regionserver
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Critical
>         Attachments: hbase-2447.txt
>
>
> In testing GC pause scenarios with kill -STOP, I got the regionserver into a 
> situation where it was blocked forever while shutting down (also blocking 
> clients, since the RPCs were still pinging). The root issue is that, if the 
> log syncer has an error just as more edits are being done, addToSyncQueue() 
> can go to sleep waiting on a syncer which has just died.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to