lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Høydahl (JIRA) <>
Subject [jira] [Updated] (LUCENE-8720) Integer overflow bug in NameIntCacheLRU.makeRoomLRU()
Date Thu, 16 May 2019 14:18:00 GMT


Jan Høydahl updated LUCENE-8720:
    Fix Version/s: 7.7.2

> Integer overflow bug in NameIntCacheLRU.makeRoomLRU()
> -----------------------------------------------------
>                 Key: LUCENE-8720
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/search
>    Affects Versions: 7.7.1
>         Environment: Mac OS X 10.11.6 but this bug is not affected by the environment
because it is a straightforward integer overflow bug.
>            Reporter: Russell A Brown
>            Priority: Major
>              Labels: easyfix, patch
>             Fix For: 7.7.2, 8.1, master (9.0)
>         Attachments: LUCENE-NNNN.patch
> The NameIntCacheLRU.makeRoomLRU() method has an integer overflow bug because if maxCacheSize
>= Integer.MAX_VALUE/2, 2*maxCacheSize will overflow to -(2^30) and the value of n will overflow
to a negative integer as well, which will prevent any clearing of the cache whatsoever. Hence,
performance will degrade once the cache becomes full because it will be impossible to remove
any entries in order to add new entries to the cache.
> Moreover, comments in and indicate that
2/3 of the cache will be cleared, whereas in fact only 1/3 of the cache is cleared. So as
not to change the behavior of the NameIntCacheLRU.makeRoomLRU() method, I have not changed
the code to clear 2/3 of the cache but instead I have changed the comments to indicate that
1/3 of the cache is cleared.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message