[
https://issues.apache.org/jira/browse/BOOKKEEPER-198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242249#comment-13242249
]
Flavio Junqueira commented on BOOKKEEPER-198:
---------------------------------------------
bq. only the case we need to decrement pageCount is after removing it from
pages pool, but new request failed to use it. it is orphan page, we need to
decrement it.
Why don't we return the page to the pool in the case of a failure? If the pool
size is supposed to be constant, then why do we have a page count?
> replaying entries of deleted ledgers would exhaust ledger cache.
> ----------------------------------------------------------------
>
> Key: BOOKKEEPER-198
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-198
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Sijie Guo
> Assignee: Sijie Guo
> Fix For: 4.1.0
>
> Attachments: BK-198.patch, BK-198.patch_v2
>
>
> we found that replaying entries of deleted ledgers would exhaust ledger
> cache. then ledger cache would no clean page to grab, it would throw
> following exception.
> {code}
> java.util.NoSuchElementException
> at java.util.LinkedList.getFirst(LinkedList.java:109)
> at
> org.apache.bookkeeper.bookie.LedgerCacheImpl.grabCleanPage(LedgerCacheImpl.java:454)
> at
> org.apache.bookkeeper.bookie.LedgerCacheImpl.putEntryOffset(LedgerCacheImpl.java:165)
> {code}
> this issue is because bookie grabs a clean page but fail to updating page due
> to NoLedgerException, but bookie doesn't return this clean page back to
> ledger cache. so the ledger cache is exhausted, when new ledger want to grab
> a clean page, it failed to find available page.
--
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