Infinispan初始状态转移超时

时间:2020-02-14 22:12:16

标签: wildfly infinispan jgroups

我正在为两个节点(服务器1和服务器2)设置复制的infinispan(9.4.16.Final,Wildfly 18.1)缓存,并且遇到了启动时初始状态传输超时的问题。这仅在升级应用程序时发生。

ERROR [2020-02-14 21:54:47,870] [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-13,ejb,server1) ISPN000474: Error processing request 2017@server2
ERROR [2020-02-14 21:54:47,876] [thread-13,ejb,server1] [transport.jgroups.JGroupsTransport] [] - ISPN000474: Error processing request 2020@server2

ERROR [2020-02-14 20:49:54,732] [org.jboss.msc.service.fail] (ServerService Thread Pool -- 90) MSC000001: Failed to start service org.wildfly.clustering.infinispan.cache.mycontainer.mycache: org.jboss.msc.service.StartException in service org.wildfly.clustering.infinispan.cache.mycontainer.mycache: org.infinispan.commons.CacheException: Initial state transfer timed out for cache mycache on server1
    at org.wildfly.clustering.service@18.0.1.Final//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:70)
    at org.wildfly.clustering.service@18.0.1.Final//org.wildfly.clustering.service.AsyncServiceConfigurator$AsyncService.lambda$start$0(AsyncServiceConfigurator.java:117)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:834)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache mycache on server1
    at org.infinispan@9.4.16.Final//org.infinispan.statetransfer.StateTransferManagerImpl.waitForInitialStateTransferToComplete(StateTransferManagerImpl.java:238)
    at org.infinispan@9.4.16.Final//org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1113)
    at org.infinispan@9.4.16.Final//org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:511)
    at org.infinispan@9.4.16.Final//org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:657)
    at org.infinispan@9.4.16.Final//org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:601)
    at org.infinispan@9.4.16.Final//org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:484)
    at org.infinispan@9.4.16.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:468)
    at org.infinispan@9.4.16.Final//org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:454)
    at org.jboss.as.clustering.infinispan@18.0.1.Final//org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:83)
    at org.wildfly.clustering.infinispan.spi@18.0.1.Final//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:77)
    at org.wildfly.clustering.infinispan.spi@18.0.1.Final//org.wildfly.clustering.infinispan.spi.service.CacheServiceConfigurator.get(CacheServiceConfigurator.java:55)
    at org.wildfly.clustering.service@18.0.1.Final//org.wildfly.clustering.service.FunctionalService.start(FunctionalService.java:67)
    ... 7 more

ERROR [2020-02-14 21:54:47,864] [Controller Boot Thread] [as.controller.management-operation] [] - WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "infinispan"),
    ("cache-container" => "mycontainer"),
    ("replicated-cache" => "mycache"),
    ("component" => "backups")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.clustering.infinispan.cache.mycontainer.mycache" => "org.infinispan.commons.CacheException: Initial state transfer timed out for cache mycache on server1
    Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache mycache on server1"}}

我的配置:

<cache-container name="mycontainer">
    <transport/>
    <replicated-cache name="mycache">
        <locking acquire-timeout="30000" isolation="REPEATABLE_READ"/>
        <expiration interval="60000" lifespan="1200000" max-idle="-1"/>
        <file-store/>
    </replicated-cache>
</cache-container>

有人可以帮忙吗?我花了几个小时试图解决这个问题,但是没有任何运气。谢谢!

3 个答案:

答案 0 :(得分:0)

您有两个选择:

1-增加timeout

OR

2-设置await-initial-transfer="false"

    <replicated-cache name="mycache">
        <locking acquire-timeout="30000" isolation="REPEATABLE_READ"/>
        <expiration interval="60000" lifespan="1200000" max-idle="-1"/>
        <file-store/>
<state-transfer enabled="true" timeout="60000" await-initial-transfer="false"/>
    </replicated-cache>
    ```

答案 1 :(得分:0)

我解决了这个问题,方法是从已部署的耳朵中删除该版本。当模块名称不完全匹配时,Infinispan无法(可能是设计使然)复制缓存条目。我认为删除版本不是理想的解决方案,但可以完成工作。删除版本后,初始状态传输超时错误便停止发生。

答案 2 :(得分:0)

对于 infinispan 集群,在这种情况下还有一种情况需要注意,尤其是缓存 org.infinispan.CONFIG。一旦缓存 org.infinispan.CONFIG 的状态传输超时。集群中很可能存在导致这种情况的节点。尝试找出哪个节点无法请求缓存 org.infinispan.CONFIG 的状态,然后重新启动该节点。很可能会在 org.infinispan.statetransfer.InboundTransferTask 上出现警告。