You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Sergey Kosarev (JIRA)" <ji...@apache.org> on 2018/02/05 10:23:00 UTC

[jira] [Created] (IGNITE-7624) Cluster Activation from Client Node hangs up in specific configuration

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)