Sangjin Lee created HDFS-7598:
---------------------------------
Summary: TestDFSClientCache.testEviction is not quite correct and
fails with newer version of guava
Key: HDFS-7598
URL: https://issues.apache.org/jira/browse/HDFS-7598
Project: Hadoop HDFS
Issue Type: Bug
Components: test
Affects Versions: 2.6.0
Reporter: Sangjin Lee
Assignee: Sangjin Lee
Priority: Minor
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)