[jira] [Created] (IGNITE-12554) Ignite instance couldn't be restarted if it's parent thread group has been called destroy once

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-12554) Ignite instance couldn't be restarted if it's parent thread group has been called destroy once

Anton Vinogradov (Jira)
ha faculty created IGNITE-12554:
-----------------------------------

             Summary: Ignite instance couldn't be restarted if it's parent thread group has been called destroy once
                 Key: IGNITE-12554
                 URL: https://issues.apache.org/jira/browse/IGNITE-12554
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: 2.7.6
            Reporter: ha faculty
         Attachments: NodeRestartTesting.java

I am using an inhouse platform which manage the life cycle of ignite instance by calling ignite.start() and ignite.stop() from a web application.

it could be started without issue for the first time. however, if it stop the ignite by calling ignite.stop() and followed by destroying the parent thread group which starting it.

Calling ignite.start() in the 2nd time will throw the following exception 

Exception in thread "kickOff" java.lang.IllegalThreadStateExceptionException in thread "kickOff" java.lang.IllegalThreadStateException at java.lang.ThreadGroup.addUnstarted(ThreadGroup.java:867) at java.lang.Thread.init(Thread.java:405) at java.lang.Thread.init(Thread.java:349) at java.lang.Thread.<init>(Thread.java:599) at org.apache.ignite.thread.IgniteThread.<init>(IgniteThread.java:96) at org.apache.ignite.internal.util.StripedExecutor$Stripe.start(StripedExecutor.java:474) at org.apache.ignite.internal.util.StripedExecutor.<init>(StripedExecutor.java:121) at org.apache.ignite.internal.util.StripedExecutor.<init>(StripedExecutor.java:80) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1842) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:589) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:565) at org.apache.ignite.Ignition.start(Ignition.java:305) at com.faculty.poc.ignite.app.NodeRestartTesting.run(NodeRestartTesting.java:60) at java.lang.Thread.run(Thread.java:748)

Please find my demo code for this issue.

Walk through into Ignite code, it should be caused by a static thread group created in IgniteThread class. (private static final ThreadGroup DFLT_GRP = new ThreadGroup("ignite")

Destroyed the parent thread group which start the ignite instance will result in causing the DFLT_GRP go into destroyed state. Therefore, when Ignite was start ifor the 2nd time, this static thread group has been destroyed and no longer able to run the ignite. 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)