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);