[ 
https://issues.apache.org/jira/browse/IGNITE-12554?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Antonov updated IGNITE-12554:
------------------------------------
    Description: 
I am using an inhouse platform which manage the life cycle of ignite instance 
by calling ignition.start() and ignition.stop() from a web application.

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

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

{noformat}
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)
{noformat}
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. 

 

 

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

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

Calling ignition.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. 

 

 


> 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
>            Priority: Major
>         Attachments: NodeRestartTesting.java
>
>
> I am using an inhouse platform which manage the life cycle of ignite instance 
> by calling ignition.start() and ignition.stop() from a web application.
> it could be started without issue for the first time. however, if it stop the 
> ignite by calling ignition.stop() and followed by destroying the parent 
> thread group which starting it.
> Calling ignition.start() in the 2nd time will throw the following exception 
> {noformat}
> 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)
> {noformat}
> 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)

Reply via email to