Hi guys. I've got a reproducer that can be related. See comments http://apache-ignite-users.70518.x6.nabble.com/Partition-eviction-failed-this-can-cause-grid-hang-Caused-by-java-lang-IllegalStateException-Failed--tp19122p20524.html
Sergey Sergeev, just for reference, what kind of file system do you use with Ignite's persistence? Arseny Kovalchuk Senior Software Engineer at Synesis skype: arseny.kovalchuk mobile: +375 (29) 666-16-16 LinkedIn Profile <http://www.linkedin.com/in/arsenykovalchuk/en> On 9 March 2018 at 12:31, Sergey Sergeev <webs.supp...@gmail.com> wrote: > Hi Mikhail, > > Unfortunately, the problem has repeated itself on ignite-core-2.3.3 > > 27.02.18 00:27:55 ERROR GridCacheIoManager - Failed to process message > [senderId=8f99c887-cd4b-4c38-a649-ca430040d535, messageType=class > o.a.i.i.processors.cache.distributed.dht.atomic.GridNearAtom > icUpdateResponse] > 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.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.find(BPlusTree.java:933) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.IgniteCacheOffhe > apManagerImpl.expire(IgniteCacheOffheapManagerImpl.java:979) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache. > *GridCacheTtlManager.expire*(GridCacheTtlManager.java:197) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheUtils. > unwindEvicts(GridCacheUtils.java:833) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.onMessageProcessed(GridCacheIoManager.java:1099) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.processMessage(GridCacheIoManager.java:1072) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.onMessage0(GridCacheIoManager.java:579) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.handleMessage(GridCacheIoManager.java:378) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.handleMessage(GridCacheIoManager.java:304) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er.access$100(GridCacheIoManager.java:99) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheIoManag > er$1.onMessage(GridCacheIoManager.java:293) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.managers.communication.GridIoMana > ger.invokeListener(GridIoManager.java:1555) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.managers.communication.GridIoMana > ger.processRegularMessage0(GridIoManager.java:1183) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.managers.communication.GridIoMana > ger.access$4200(GridIoManager.java:126) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.managers.communication.GridIoMana > ger$9.run(GridIoManager.java:1090) ~[ignite-core-2.3.3.jar:2.3.3] > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505) > ~[ignite-core-2.3.3.jar:2.3.3] > 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.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .io.IOVersions.forPage(IOVersions.java:95) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.Cach > eDataRowAdapter.initFromLink(CacheDataRowAdapter.java:148) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.Cach > eDataRowAdapter.initFromLink(CacheDataRowAdapter.java:102) > ~[ignite-core-2.3.3.jar:2.3.3] > at > org.apache.ignite.internal.processors.cache.tree.PendingRow.initKey(PendingRow.java:72) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.tree.PendingEntr > iesTree.getRow(PendingEntriesTree.java:118) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.tree.PendingEntr > iesTree.getRow(PendingEntriesTree.java:31) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.fillFromBuffer(BPlusTree.java:4539) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.init(BPlusTree.java:4441) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.access$5300(BPlusTree.java:4380) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.findLowerUnbounded(BPlusTree.java:910) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.find(BPlusTree.java:942) ~[ignite-core-2.3.3.jar:2.3.3] > ... 17 more > > > And if we are reading from cache... > > > 27.02.18 00:27:56 ERROR MessagePartProcessingHandler - error processing > incoming messagePartDeliveryReceipt=MessagePartDeliveryReceipt{id=null, > abonent=7****, externalId='7586F73B'} > org.springframework.dao.DataAccessResourceFailureException: Runtime > failure on bounds: [lower=null, upper=PendingRow []]; nested exception is > class org.apache.ignite.IgniteException: Runtime failure on bounds: > [lower=null, upper=PendingRow []] > at com.a1s.sdp.data.dao.ignite.IgniteExceptionTranslator.transl > ateExceptionIfPossible(IgniteExceptionTranslator.java:35) > ~[core-data-1.5-SNAPSHOT.jar:3752] > at > com.a1s.sdp.data.dao.ignite.IgniteDaoHelper.wrapIgnite(IgniteDaoHelper.java:41) > ~[core-data-1.5-SNAPSHOT.jar:3752] > at com.a1s.sdp.data.dao.ignite.BaseIgniteCassandraRepository.fi > ndOne(BaseIgniteCassandraRepository.java:136) > ~[core-data-1.5-SNAPSHOT.jar:3752] > at com.a1s.sdp.common.service.TransportServiceImpl.processMessa > gePartDelivered(TransportServiceImpl.java:213) > ~[core-common-1.5-SNAPSHOT.jar:3752] > at com.a1s.sdp.common.service.TransportServiceImpl.messagePartD > elivered(TransportServiceImpl.java:202) ~[core-common-1.5-SNAPSHOT.jar > :3752] > at com.a1s.sdp.common.transport.handler.MessagePartProcessingHa > ndler.lambda$channelReadMessagePartDeliveryReceipt$1(MessagePartProcessingHandler.java:91) > ~[core-common-1.5-SNAPSHOT.jar:3752] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:1.8.0_151] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[?:1.8.0_151] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:1.8.0_151] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:1.8.0_151] > at java.lang.Thread.run(Thread.java:748) [?:*1.8.0_151*] > Caused by: 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.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.find(BPlusTree.java:933) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache. > *IgniteCacheOffheapManagerImpl.**expire*(IgniteCacheOffheapManagerImpl.java:979) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheTtlMana > ger.expire(GridCacheTtlManager.java:197) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheUtils. > unwindEvicts(GridCacheUtils.java:833) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheGateway > .leaveNoLock(GridCacheGateway.java:240) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheGateway > .leave(GridCacheGateway.java:225) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GatewayProtected > CacheProxy.onLeave(GatewayProtectedCacheProxy.java:1510) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GatewayProtected > CacheProxy.get(GatewayProtectedCacheProxy.java:608) > ~[ignite-core-2.3.3.jar:2.3.3] > at com.a1s.sdp.data.dao.ignite.BaseIgniteCassandraRepository.la > mbda$findOne$7(BaseIgniteCassandraRepository.java:136) > ~[core-data-1.5-SNAPSHOT.jar:3752] > at > com.a1s.sdp.data.dao.ignite.IgniteDaoHelper.wrapIgnite(IgniteDaoHelper.java:39) > ~[core-data-1.5-SNAPSHOT.jar:3752] > ... 9 more > 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.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .io.IOVersions.forPage(IOVersions.java:95) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.Cach > eDataRowAdapter.initFromLink(CacheDataRowAdapter.java:148) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.Cach > eDataRowAdapter.initFromLink(CacheDataRowAdapter.java:102) > ~[ignite-core-2.3.3.jar:2.3.3] > at > org.apache.ignite.internal.processors.cache.tree.PendingRow.initKey(PendingRow.java:72) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.tree.PendingEntr > iesTree.getRow(PendingEntriesTree.java:118) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.tree.PendingEntr > iesTree.getRow(PendingEntriesTree.java:31) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.fillFromBuffer(BPlusTree.java:4539) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.init(BPlusTree.java:4441) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree$ForwardCursor.access$5300(BPlusTree.java:4380) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.findLowerUnbounded(BPlusTree.java:910) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.find(BPlusTree.java:942) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.persistence.tree > .BPlusTree.find(BPlusTree.java:933) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache. > *IgniteCacheOffheapManagerImpl.**expire*(IgniteCacheOffheapManagerImpl.java:979) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheTtlMana > ger.expire(GridCacheTtlManager.java:197) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheUtils. > unwindEvicts(GridCacheUtils.java:833) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheGateway > .leaveNoLock(GridCacheGateway.java:240) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GridCacheGateway > .leave(GridCacheGateway.java:225) ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GatewayProtected > CacheProxy.onLeave(GatewayProtectedCacheProxy.java:1510) > ~[ignite-core-2.3.3.jar:2.3.3] > at org.apache.ignite.internal.processors.cache.GatewayProtected > CacheProxy.get(GatewayProtectedCacheProxy.java:608) > ~[ignite-core-2.3.3.jar:2.3.3] > at com.a1s.sdp.data.dao.ignite.BaseIgniteCassandraRepository.la > mbda$findOne$7(BaseIgniteCassandraRepository.java:136) > ~[core-data-1.5-SNAPSHOT.jar:3752] > at > com.a1s.sdp.data.dao.ignite.IgniteDaoHelper.wrapIgnite(IgniteDaoHelper.java:39) > ~[core-data-1.5-SNAPSHOT.jar:3752] > ... 9 more > > > The attachment (https://yadi.sk/d/u7fSK8Y53SpCpA) contains a part of > cache obtained from node of cluster - /var/ignite/***/db/node00- > 66fd86f5-4e2d-4f1b-8fe1-993bf5937d99/cache-MessagePartSent. > This cache contains objects of class MessagePartSent: > > @Table("message_part_sent_external") > public final class MessagePartSent { > @Id > private MessagePartSentPk id; > private MessagePartPk partId; > > public MessagePartSentPk getId() { > return id; > } > > public void setId(MessagePartSentPk id) { > this.id = id; > } > > public MessagePartPk getPartId() { > return partId; > } > > public void setPartId(MessagePartPk partId) { > this.partId = partId; > } > > @Override > public String toString() { > final StringBuilder sb = new StringBuilder("MessagePartSent{"); > sb.append("id=").append(id); > sb.append(", partId=").append(partId); > sb.append('}'); > return sb.toString(); > } > > public static final class MessagePartSentPk implements Serializable { > private Integer linkId; > private String externalId; > > public MessagePartSentPk() { > // > } > > public MessagePartSentPk(Integer linkId, String externalId) { > this.linkId = linkId; > this.externalId = externalId; > } > > public Integer getLinkId() { > return linkId; > } > > public void setLinkId(Integer linkId) { > this.linkId = linkId; > } > > public String getExternalId() { > return externalId; > } > > public void setExternalId(String externalId) { > this.externalId = externalId; > } > > @Override > public boolean equals(Object o) { > if (this == o) return true; > if (!(o instanceof MessagePartSentPk)) return false; > > final MessagePartSentPk that = (MessagePartSentPk) o; > > if (externalId != null ? !externalId.equals(that.externalId) > : that.externalId != null) return false; > if (linkId != null ? !linkId.equals(that.linkId) : that.linkId > != null) return false; > > return true; > } > > @Override > public int hashCode() { > int result = linkId != null ? linkId.hashCode() : 0; > result = 31 * result + (externalId != null ? > externalId.hashCode() : 0); > return result; > } > > @Override > public String toString() { > final StringBuilder sb = new StringBuilder("MessagePartSent > Pk{"); > sb.append("linkId=").append(linkId); > sb.append(", externalId='").append(externalId).append('\''); > sb.append('}'); > return sb.toString(); > } > } > > } > > > public final class MessagePartPk implements Serializable { > private UUID transactionId; > private Short partNumber; > > public MessagePartPk() { > //default > } > > public MessagePartPk(UUID transactionId, Short partNumber) { > this.transactionId = transactionId; > this.partNumber = partNumber; > } > > public UUID getTransactionId() { > return transactionId; > } > > public void setTransactionId(UUID transactionId) { > this.transactionId = transactionId; > } > > public Short getPartNumber() { > return partNumber; > } > > public void setPartNumber(Short partNumber) { > this.partNumber = partNumber; > } > > @Override > public boolean equals(Object o) { > if (this == o) return true; > if (!(o instanceof MessagePartPk)) return false; > > final MessagePartPk messagePartPk = (MessagePartPk) o; > > if (partNumber != null ? !partNumber.equals(messagePartPk.partNumber) > : > messagePartPk.partNumber != null) return false; > if (transactionId != null ? > !transactionId.equals(messagePartPk.transactionId) > : > messagePartPk.transactionId != null) > return false; > > return true; > } > > @Override > public int hashCode() { > int result = transactionId != null ? transactionId.hashCode() : 0; > result = 31 * result + (partNumber != null ? partNumber.hashCode() > : 0); > return result; > } > > @Override > public String toString() { > final StringBuilder sb = new StringBuilder("MessagePartPk{"); > sb.append("transactionId=").append(transactionId); > sb.append(", partNumber=").append(partNumber); > sb.append('}'); > return sb.toString(); > } > > On Thu, Mar 8, 2018 at 11:03 PM, Dmitriy Setrakyan <dsetrak...@apache.org> > wrote: > >> Hi Sergey, >> >> The 2.4 release is about to be voted for. You can use the RC1 in the mean >> time: >> http://apache-ignite-developers.2346864.n4.nabble.com/VOTE- >> Apache-Ignite-2-4-0-RC1-td27687.html >> >> D. >> >> On Mon, Feb 19, 2018 at 6:43 AM, Mikhail <michael.cherka...@gmail.com> >> wrote: >> >>> Hi Sergey, >>> >>> The release of 2.4 should be soon, in a week or couple, however, there's >>> no >>> strong schedule for Apache releases. >>> >>> Could you please share a reproducer for the issue? Might be you can >>> share a >>> storage on which the issue can be reproduced? >>> >>> Thanks, >>> Mike. >>> >>> >>> >>> -- >>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >>> >> >> > > > -- > Best regards, > Sergey S. Sergeev (aka SSSerj) > Notes: https://twitter.com/ssserj > exit(0); >