You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2016/11/21 10:06:59 UTC
[jira] [Commented] (OAK-5125) Some implementations of
CacheValue.getMemory() don't care about integer overflow.
[ https://issues.apache.org/jira/browse/OAK-5125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15683084#comment-15683084 ]
Marcel Reutegger commented on OAK-5125:
---------------------------------------
In addition to protecting against integer overflow in getMemory() the DocumentNodeStore should also ensure a cache entry never reaches that size. I'd say it shouldn't even get close to Integer.MAX_VALUE because such a big cache entry potentially kicks out a lot of other useful cache entries. Created OAK-5132.
> Some implementations of CacheValue.getMemory() don't care about integer overflow.
> ---------------------------------------------------------------------------------
>
> Key: OAK-5125
> URL: https://issues.apache.org/jira/browse/OAK-5125
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: core
> Affects Versions: 1.0.34, 1.2.21, 1.5.13, 1.4.10
> Reporter: Manfred Baedke
> Assignee: Manfred Baedke
> Priority: Blocker
> Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.6, 1.4.11
>
>
> The interface method org.apache.jackrabbit.oak.cache.CacheValue.getMemory() returns an int value, while some implementations measure values larger than Integer.MAX_VALUE, producing an int overflow. This actually breaks in real life when testing with huge repos and machines, since it's used to measure the size of local diffs (e.g. a reindexing may diff the whole repo against an empty root).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)