[
https://issues.apache.org/jira/browse/BOOKKEEPER-840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14355862#comment-14355862
]
Flavio Junqueira commented on BOOKKEEPER-840:
---------------------------------------------
Ok, this is a bit subtle. I think the description is referring to the call to
onRotateEntryLog from EntryLogger.createNewLog and the call to
CompactionScannerFactory.waitEntrylogFlushed. In waitEntrylogFlushed, it calls
getLeastUnflushedLogId, which locks entrylogger. To fix it, can we acquire
flushLock inside the while loop in waitEntrylogFlushed?
> Deadlock on flushLock on compaction
> -----------------------------------
>
> Key: BOOKKEEPER-840
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-840
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-server
> Reporter: Sijie Guo
> Assignee: Sijie Guo
> Priority: Critical
> Fix For: 4.4.0, 4.3.1
>
>
> the dead lock happens on entry log rolling and compaction.
> entry log rolling will lock entry logger then lock flushLock.
> compaction waiting for flush, will lock flushLock and then entry logger.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)