[
https://issues.apache.org/jira/browse/IGNITE-8747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Mashenkov updated IGNITE-8747:
-------------------------------------
Comment: was deleted
(was: I've renamed a ticket as ExpiryPolicy shouldn't be applied on remove
operation. There is a TCK test on this.
So, first get() operation is responsible to expire entry in
expire_whenAccessed() test.
I've found, on first entry touch we check TTL related to CreatedExpiryPolicy
and then update is with AccessExpiryPolicy, but we miss the check if entry
should be expired instantly due to newly applied AccessExpiryPolicy. This miss
makes next remove() method report about successful entry deletions.
Also, this issue was not introduced by IGNITE-8681. It can be easily reproduced
on master with eagerTtl=false.)
> AccessExpiryPolicy should be check on first entry touch.
> --------------------------------------------------------
>
> Key: IGNITE-8747
> URL: https://issues.apache.org/jira/browse/IGNITE-8747
> Project: Ignite
> Issue Type: Improvement
> Components: cache
> Reporter: Andrew Mashenkov
> Assignee: Andrew Mashenkov
> Priority: Major
> Labels: MakeTeamcityGreenAgain, tck, test-failure
>
> We have 2 TCK 1.0 test that are passed due to we have eagerTtl=true by
> default.
> The reason is remove() return true even if an expired entry was removed.
> Seems, we have to evict expired entry from cache on remove(), but do not
> count it as removed.
> java.lang.AssertionError
> at
> org.jsr107.tck.expiry.CacheExpiryTest.expire_whenAccessed(CacheExpiryTest.java:326)
> java.lang.AssertionError: expected:<0> but was:<1> at
> org.jsr107.tck.expiry.CacheExpiryTest.testCacheStatisticsRemoveAll(CacheExpiryTest.java:160)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)