Sergey, Arseny,

We've fixed a number of similar issues in 2.4 Ignite version.
However, this one, ExpiryPolicy with persistence still buggy. Here is a
ticket for it [1].

The ticket has a PR that should fix this issue, but it broke backward
compatibility
as TTLManager, who responsible for expired entries eviction, can't restore
data saved by previous Ignite versions.
So, TTL manager will not be able to evict persisted entries in background
after restart until entry will be requested.

[1] https://issues.apache.org/jira/browse/IGNITE-5874

On Sun, Feb 18, 2018 at 6:24 PM, Sergey Sergeev <webs.supp...@gmail.com>
wrote:

> Hi Igniters
>
> I can't defeat the bug. It is reproducing on ignite version community
> 2.3.0 and on trial professional 2.3.2 editions.
>
> The Cache has configuration like:
>
> final CacheConfiguration<Pk, Message> cacheConfiguration
> = new CacheConfiguration<>(getEntityClass().getSimpleName());
>
> cacheConfiguration.setCacheMode(CacheMode.PARTITIONED);
> cacheConfiguration.setBackups(0);
> cacheConfiguration.setRebalanceMode(CacheRebalanceMode.ASYNC);
> cacheConfiguration.setDataRegionName("messagePartSentRegion");
> cacheConfiguration.setEagerTtl(true);
> cacheConfiguration.setManagementEnabled(true);
> cacheConfiguration.setStatisticsEnabled(true);
>
> IgniteCache<Pk, Message> cache = ignite.getOrCreateCache(cacheConfiguration)
> .withExpiryPolicy(new CreatedExpiryPolicy(new Duration(DAYS, 7)));
>
> The data storage has configuration:
> ...
> <property name="dataStorageConfiguration">
>     <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
>         <property name="walMode" value="LOG_ONLY" />
>         <property name="writeThrottlingEnabled" value="true" />
>         <property name="metricsEnabled" value="true" />
>         <property name="defaultDataRegionConfiguration">
>             <bean 
> class="org.apache.ignite.configuration.DataRegionConfiguration">
>                 <property name="metricsEnabled" value="true" />
>                 <property name="persistenceEnabled" value="true" />
>                 <!-- 2Gb maximum size -->
>                 <property name="maxSize" value="#{2L * 1024 * 1024 * 1024}"/>
>             </bean>
>         </property>
>         <property name="dataRegionConfigurations">
>             <list>
>                 ...
>
>                 <bean 
> class="org.apache.ignite.configuration.DataRegionConfiguration">
>                     <property name="metricsEnabled" value="true" />
>                     <property name="name" value="messagePartSentRegion" />
>                     *<property name="persistenceEnabled" value="true" />*
>                     <!-- 2Gb maximum size -->
>                     <property name="maxSize" value="#{2L * 1024 * 1024 * 
> 1024}"/>
>                 </bean>
>                 ...
>             </list>
>         </property>
>     </bean>
> </property>
> ...
>
> After 7 days, I've exception:
>
> ERROR  GridCacheIoManager - Failed to process message 
> [senderId=e9e71d4c-e1dc-4647-8fd4-72fb281907a4, messageType=class 
> o.a.i.i.processors.cache.distributed.dht.atomic.GridNearAtomicFullUpdateRequest]
> org.apache.ignite.IgniteException: Runtime failure on bounds: [lower=null, 
> upper=PendingRow []]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:954)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:933)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.expire(IgniteCacheOffheapManagerImpl.java:979)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expire(GridCacheTtlManager.java:197)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheUtils.unwindEvicts(GridCacheUtils.java:833)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessageProcessed(GridCacheIoManager.java:1099)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1072)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
> Caused by: java.lang.IllegalStateException: Failed to get page IO instance 
> (page content is corrupted)
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forVersion(IOVersions.java:83)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forPage(IOVersions.java:95)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:148)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:102)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.tree.PendingRow.initKey(PendingRow.java:72)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.tree.PendingEntriesTree.getRow(PendingEntriesTree.java:118)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.tree.PendingEntriesTree.getRow(PendingEntriesTree.java:31)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$ForwardCursor.fillFromBuffer(BPlusTree.java:4539)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$ForwardCursor.init(BPlusTree.java:4441)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$ForwardCursor.access$5300(BPlusTree.java:4380)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.findLowerUnbounded(BPlusTree.java:910)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:942)
>  ~[ignite-core-2.3.2.jar:2.3.2]
>     ... 17 more
>
>
> The description of such a problem:
> http://apache-ignite-users.70518.x6.nabble.com/Partition-
> eviction-failed-this-can-cause-grid-hang-Caused-by-java-lang-
> IllegalStateException-Failed--td19122.html
>
> Issues:
> https://issues.apache.org/jira/browse/IGNITE-6423
> https://issues.apache.org/jira/browse/IGNITE-7278
>
> And... When do you plan to release the 2.4.0 version? May be fix?
>
>
> --
> Best regards,
> Sergey S. Sergeev
> exit(0);
>



-- 
Best regards,
Andrey V. Mashenkov

Reply via email to