Aleksey Plekhanov created IGNITE-28653:
------------------------------------------
Summary: Failure on iterating over persistent near cache with
expired entries
Key: IGNITE-28653
URL: https://issues.apache.org/jira/browse/IGNITE-28653
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
Assignee: Aleksey Plekhanov
Reproducer:
{code:java}
IgniteEx srv = startGrids(2);
srv.cluster().state(ACTIVE);
IgniteCache<Object, Object> cache = srv.getOrCreateCache(new
CacheConfiguration<>(DEFAULT_CACHE_NAME)
.setNearConfiguration(new NearCacheConfiguration<>())
.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new
Duration(TimeUnit.MILLISECONDS, 1)))
.setEagerTtl(false)
);
for (int i = 0; i < 100; i++)
cache.put(i, "val");
doSleep(10);
cache.clear();
{code}
Fails with:
{noformat}
Caused by: java.lang.AssertionError
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.remove(GridCacheOffheapManager.java:2519)
at
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.remove(IgniteCacheOffheapManagerImpl.java:427)
at
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.removeValue(GridCacheMapEntry.java:3539)
at
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkExpired(GridCacheMapEntry.java:2398)
at
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.visitable(GridCacheMapEntry.java:3805)
at
org.apache.ignite.internal.processors.cache.GridCacheConcurrentMapImpl$1.apply(GridCacheConcurrentMapImpl.java:328)
at
org.apache.ignite.internal.processors.cache.GridCacheConcurrentMapImpl$1.apply(GridCacheConcurrentMapImpl.java:326)
at
org.apache.ignite.internal.util.lang.gridfunc.TransformFilteringIterator.hasNextX(TransformFilteringIterator.java:90)
at
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
at
org.apache.ignite.internal.processors.cache.distributed.dht.GridCachePartitionedConcurrentMap$PartitionedIterator.hasNext(GridCachePartitionedConcurrentMap.java:186)
at
org.apache.ignite.internal.processors.cache.GridCacheClearAllRunnable.run(GridCacheClearAllRunnable.java:79)
at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheClearAllRunnable.run(GridNearCacheClearAllRunnable.java:52)
at
org.apache.ignite.internal.processors.cache.GridCacheAdapter.clearLocally(GridCacheAdapter.java:1084)
at
org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.clearLocally(GridCacheProxyImpl.java:992)
at
org.apache.ignite.internal.processors.cache.GridCacheAdapter$GlobalClearAllJob.localExecute(GridCacheAdapter.java:5195)
{noformat}
Can also be reproduced without `setEagerTtl(false)` with the same error, but
there is a race and reproducer is more complex.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)