【问题标题】:Failed to execute the cache operation (all partition owners are left the grid partition data has been lost)执行缓存操作失败(所有分区所有者都被留下网格分区数据已丢失)
【发布时间】:2021-02-03 07:35:36
【问题描述】:

我有 .Net Ignite 客户端和服务器应用程序 Ignite v2.9.1。我们有一个 2 节点 簇, 最近我们在使用这个后将 ignite 2.7.6 升级为 ignite 2.9.1 我们经常遇到问题的版本。

[2021-02-02T10:09:15,668][ERROR][client-connector-#227%ServerNode%][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.cache.ClientCacheGetRequest@bb5fb96]
javax.cache.CacheException: class org.apache.ignite.internal.processors.cache.CacheInvalidStateException: Failed to execute the cache operation (all partition owners have left the grid, partition data has been lost) [cacheName=CREDENTIALS, partition=759, key=UserKeyCacheObjectImpl [part=759, val=SqlCredentialAdo-Althing-energyapp, hasValBytes=false]]
    at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1270) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1110) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.get(GatewayProtectedCacheProxy.java:676) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.platform.client.cache.ClientCacheGetRequest.process(ClientCacheGetRequest.java:41) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:99) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:202) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:56) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) [ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) [ignite-core-2.9.1.jar:2.9.1]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: org.apache.ignite.internal.processors.cache.CacheInvalidStateException: Failed to execute the cache operation (all partition owners have left the grid, partition data has been lost) [cacheName=CREDENTIALS, partition=759, key=UserKeyCacheObjectImpl [part=759, val=SqlCredentialAdo-Althing-energyapp, hasValBytes=false]]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFutureAdapter.validateKey(GridDhtTopologyFutureAdapter.java:209) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFutureAdapter.validateCache(GridDhtTopologyFutureAdapter.java:128) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.validate(GridPartitionedSingleGetFuture.java:859) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.map(GridPartitionedSingleGetFuture.java:277) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.init(GridPartitionedSingleGetFuture.java:244) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.getAsync0(GridDhtAtomicCache.java:1471) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$1600(GridDhtAtomicCache.java:141) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$16.apply(GridDhtAtomicCache.java:477) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$16.apply(GridDhtAtomicCache.java:475) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.asyncOp(GridDhtAtomicCache.java:779) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.getAsync(GridDhtAtomicCache.java:475) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4844) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.GridCacheAdapter.repairableGet(GridCacheAdapter.java:4810) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1469) ~[ignite-core-2.9.1.jar:2.9.1]
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1107) ~[ignite-core-2.9.1.jar:2.9.1]
    ... 13 more

【问题讨论】:

    标签: .net ignite


    【解决方案1】:

    您是否在该缓存上配置了备份?您是否启用了持久性?如果没有,确认数据丢失也可以,可以试试reset lost partitions

    bin/control.sh --cache reset_lost_partitions CREDENTIALS
    

    【讨论】:

    • 是的,我启用了持久性,但没有启用备份
    • 那么你需要在重启节点后重置丢失的分区,因为有些分区丢失了一段时间。
    • 嗨,Alamar 感谢您的重播,在我们的案例中,服务器节点始终在线,并且在我们手动进行之前没有服务器节点停机。所以想知道分区是如何经常丢失的?如果发生此错误,则读写操作将无法与相应的缓存一起使用。
    • 请提供来自某个服务器节点的日志。您也只能从中选择“拓扑快照”消息。我认为会有服务器节点来来去去。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2021-01-18
    相关资源
    最近更新 更多