[
https://issues.apache.org/jira/browse/HBASE-2447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12860442#action_12860442
]
Jean-Daniel Cryans commented on HBASE-2447:
-------------------------------------------
bq. This can't happen, since the boolean is modified inside the lock, and it
acquires the lock before checking the boolean.
/me facedesk
Could we instead consider checking lock. hasWaiters(queueEmpty) before
queueEmpty.signal()? Normally the thread will always be waiting there since
that's how it releases the lock. If not, then the thread is dead?
> 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.