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)