Sergey Kosarev created IGNITE-7624: -------------------------------------- Summary: Cluster Activation from Client Node hangs up in specific configuration Key: IGNITE-7624 URL: https://issues.apache.org/jira/browse/IGNITE-7624 Project: Ignite Issue Type: Bug Components: general Affects Versions: 2.3 Reporter: Sergey Kosarev Fix For: 2.5
if we start cluster in inactive state GridTaskProcessor is not initiated fully: {code:java} @Override public void onKernalStart(boolean active) throws IgniteCheckedException { if (!active) return; tasksMetaCache = ctx.security().enabled() && !ctx.isDaemon() ? ctx.cache().<GridTaskNameHashKey, String>utilityCache() : null; startLatch.countDown(); }{code} and those startLatch is still up! Later on if we try activate cluster from client node async task is trying to be invoked (see org.apache.ignite.internal.processors.cluster.GridClusterStateProcessorImpl#sendComputeChangeGlobalState) and if ctx.security().enabled == true then Task is can't start as he waits indefinitely for those startLatch in org.apache.ignite.internal.processors.task.GridTaskProcessor#taskMetaCache {code:java} private IgniteInternalCache<GridTaskNameHashKey, String> taskMetaCache() { assert ctx.security().enabled(); if (tasksMetaCache == null) U.awaitQuiet(startLatch); return tasksMetaCache; }{code} stacktrace of the waiting thread: {code:java} "pool-1-thread-1@3160" prio=5 tid=0x68 nid=NA waiting java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Unsafe.java:-1) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) at org.apache.ignite.internal.util.IgniteUtils.awaitQuiet(IgniteUtils.java:7491) at org.apache.ignite.internal.processors.task.GridTaskProcessor.taskMetaCache(GridTaskProcessor.java:269) at org.apache.ignite.internal.processors.task.GridTaskProcessor.saveTaskMetadata(GridTaskProcessor.java:845) at org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:703) at org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:448) at org.apache.ignite.internal.processors.closure.GridClosureProcessor.runAsync(GridClosureProcessor.java:244) at org.apache.ignite.internal.processors.closure.GridClosureProcessor.runAsync(GridClosureProcessor.java:216) at org.apache.ignite.internal.IgniteComputeImpl.runAsync0(IgniteComputeImpl.java:704) at org.apache.ignite.internal.IgniteComputeImpl.runAsync(IgniteComputeImpl.java:689) at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessorImpl.sendComputeChangeGlobalState(GridClusterStateProcessorImpl.java:837) at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessorImpl.changeGlobalState0(GridClusterStateProcessorImpl.java:684) at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessorImpl.changeGlobalState(GridClusterStateProcessorImpl.java:618) at org.apache.ignite.internal.cluster.IgniteClusterImpl.active(IgniteClusterImpl.java:306) at org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3541) at org.apache.ignite.internal.processors.cache.IgniteClusterActivateDeactivateTest$7.run(IgniteClusterActivateDeactivateTest.java:627) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) at java.util.concurrent.FutureTask.run(FutureTask.java:-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748){code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)