[ 
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)

Reply via email to