[ 
https://issues.apache.org/jira/browse/HDFS-7598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Colin Patrick McCabe updated HDFS-7598:
---------------------------------------
    Issue Type: Improvement  (was: Bug)

This isn't technically a bug since the test is correct for the version of Guava 
we currently use.  But let's future-proof it with this improvement.

> Remove dependency on old version of Guava in TestDFSClientCache#testEviction
> ----------------------------------------------------------------------------
>
>                 Key: HDFS-7598
>                 URL: https://issues.apache.org/jira/browse/HDFS-7598
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: test
>    Affects Versions: 2.6.0
>            Reporter: Sangjin Lee
>            Assignee: Sangjin Lee
>            Priority: Minor
>         Attachments: HDFS-7598.001.patch
>
>
> TestDFSClientCache.testEviction() is not entirely accurate in its usage of 
> the guava LoadingCache.
> It sets the max size at 2, but asserts the loading cache will contain only 1 
> entry after inserting two entries. Guava's CacheBuilder.maximumSize() makes 
> only the following promise:
> {panel}
> Specifies the maximum number of entries the cache may contain. Note that the 
> cache may evict an entry before this limit is exceeded.
> {panel}
> Thus, the only invariant is that the loading cache will hold the maximum size 
> number of entries or fewer. The DFSClientCache.testEviction asserts it holds 
> maximum size - 1 exactly.
> For guava 11.0.2 this happens to be true at maximum size = 2 because of the 
> way it sets the maximum segment weight. With later versions of guava, the 
> maximum segment weight is set higher, and the eviction is less aggressive.
> The test should be fixed to assert only the true invariant.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to