首页 > 解决方案 > 如何修复 apache ignite 错误“ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]”?

问题描述

我正在我的 Web 应用程序中使用 apache ignite 设置内存缓存存储。我在哪里启动 ignite 节点并将一些数据存储在我的应用程序服务器启动时的 ignite 缓存存储中。这样做时,我可以启动 ignite 节点,但我的应用服务器在下面的代码行中陷入启动模式。

igniteCache.getCache("some_string");

  1. 试图增加失败超时。
  2. 增加内存后再次尝试。

    IgniteConfiguration igniteConfig = new IgniteConfiguration();
        igniteConfig.setSystemWorkerBlockedTimeout(60 * 60 * 1000);
                StopNodeFailureHandler handler = new org.apache.ignite.failure.StopNodeFailureHandler();
                handler.setIgnoredFailureTypes(new HashSet());
                igniteConfig.setFailureHandler(handler);
                //implementing multiple cache stores
                List<CacheConfiguration> list = new ArrayList<CacheConfiguration>();
    CacheConfiguration<String, Object> cacheConfig0 = new CacheConfiguration<String, Object>(name);
    cacheConfig.setCacheMode(CacheMode.PARTITIONED);
    list.add(cacheConfig0);
    
    CacheConfiguration<String, Object> cacheConfig1 = new CacheConfiguration<String, Object>(name);
    cacheConfig.setCacheMode(CacheMode.PARTITIONED);
    list.add(cacheConfig1);
    //here starting the ignite node
    ignite = Ignition.start(igniteConfig);
    caches = ignite.getOrCreateCaches(list);
    

以下是我在启动服务器时遇到的异常

*[15:08:12] Topology snapshot [ver=1, locNode=51a25b22, servers=1, clients=0, state=ACTIVE, CPUs=4, offheap=3.0GB, heap=2.5GB]
<Jul 27, 2019 3:08:35,634 PM IST> <Error> <org.apache.ignite.internal.util.typedef.G> <BEA-000000> <Blocked system-critical thread has been detected. This can lead to cluster-wide undefined behaviour [threadName=grid-timeout-worker, blockedFor=13s]> 
<Jul 27, 2019 3:08:36,625 PM IST> <Warning> <org.apache.ignite.internal.util.typedef.G> <BEA-000000> <Thread [name="grid-timeout-worker-#23", id=219, state=RUNNABLE, blockCnt=1, waitCnt=43]
> 
<Jul 27, 2019 3:08:49,975 PM IST> <Error> <> <BEA-000000> <Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=SYSTEM_WORKER_BLOCKED, err=class o.a.i.IgniteException: GridWorker [name=grid-timeout-worker, igniteInstanceName=null, finished=false, heartbeatTs=1564220302360]]]
class org.apache.ignite.IgniteException: GridWorker [name=grid-timeout-worker, igniteInstanceName=null, finished=false, heartbeatTs=1564220302360]
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826)
    at org.apache.ignite.internal.worker.WorkersRegistry.onIdle(WorkersRegistry.java:233)
    at org.apache.ignite.internal.util.worker.GridWorker.onIdle(GridWorker.java:297)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.lambda$new$0(ServerImpl.java:2663)*

标签: javaignite

解决方案


推荐阅读