You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexey Goncharuk (Jira)" <ji...@apache.org> on 2020/05/07 10:27:00 UTC

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

    [ https://issues.apache.org/jira/browse/IGNITE-12554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17101524#comment-17101524 ] 

Alexey Goncharuk commented on IGNITE-12554:
-------------------------------------------

[~Pavlukhin] the issue has not been fixed as a similar static thread group is present in {{IgniteSpiThread}}, a simple test case shows this. Do you mind taking care of it or should I take it over?

> 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
>            Assignee: Ivan Pavlukhin
>            Priority: Major
>             Fix For: 2.9
>
>         Attachments: NodeRestartTesting.java
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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. 
>  
>  



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