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