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

Ivan Kelly commented on BOOKKEEPER-659:
---------------------------------------

It seems to be a race condition with writeBuffers and the allocation of pages. 
It happens in particular with #testPeriodicCheckWhenDisabled, but I guess it 
could happen in any case where there's a high write rate. It triggers in these 
tests because pageCount is set to 1, so pages are getting flushed very often. 
It seems that, when a ledger is flushed, the list of pages for that ledger are 
sent to writeBuffers, along with the number of pages to flush. If, in the 
background, something changes the pages for that ledger, what is written in 
writeBuffers will not match the passed count and we get this IOException, which 
takes the bookie down, which causes the NotEnoughBookiesException.



> LRU page management in ledger cache.
> ------------------------------------
>
>                 Key: BOOKKEEPER-659
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-659
>             Project: Bookkeeper
>          Issue Type: Sub-task
>          Components: bookkeeper-server
>            Reporter: Sijie Guo
>            Assignee: Robin Dhamankar
>             Fix For: 4.3.0
>
>         Attachments: 
> 0001-BOOKKEEPER-659-LRU-page-management-in-ledger-cache.patch, 
> BOOKKEEPER-659.diff, BOOKKEEPER-659.diff, 
> TEST-org.apache.bookkeeper.replication.AuditorPeriodicCheckTest.xml, 
> TEST-org.apache.bookkeeper.replication.AuditorPeriodicCheckTest.xml
>
>
> better ledger page management.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to