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

Ivan Kelly commented on BOOKKEEPER-326:
---------------------------------------

I don't think the problem here is that callbacks are running in the same 
thread. Rather, in LedgerHandle, even though we have an executor, we only use 
it for add operations. If we put all read operations and readLastConfirmed 
operations into the executor, we shouldn't be able to get deadlocks like this, 
as operations on a single ledger should be serialized. 

Of course this doesn't address the Semaphore based deadlock. I was thinking 
recently that we could start using something like 
http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/com/google/common/util/concurrent/RateLimiter.html
 to alleviate the problem.  
                
> DeadLock during ledger recovery 
> --------------------------------
>
>                 Key: BOOKKEEPER-326
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-326
>             Project: Bookkeeper
>          Issue Type: Bug
>    Affects Versions: 4.1.0
>            Reporter: Vinay
>            Priority: Blocker
>         Attachments: BK_DeadLock.log, BOOKKEEPER-326.patch
>
>
> Deadlock found during ledger recovery. please find the attached thread dump.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to