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)

Reply via email to