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

Maria Makedonskaya updated IGNITE-13444:
----------------------------------------
    Description: 
We could get JVM crash if a cluster has indexes and index deletion task tries 
to run on deactivated grid.  We shouldn't start new tasks on a deactivated 
grid. Also, interrupt the execution of current tasks.

Scenario:
 * Apply patch:
{code:java}
Index: 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.javaIDEA
 additional info:Subsystem: 
com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
 (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
 (date 1587246501828)@@ -30,6 +30,7 @@ import 
org.apache.ignite.internal.processors.query.h2.database.H2Tree; import 
org.apache.ignite.internal.util.typedef.internal.CU; import 
org.apache.ignite.internal.util.typedef.internal.S;+import 
org.apache.ignite.internal.util.typedef.internal.U;  import static 
org.apache.ignite.internal.metric.IoStatisticsType.SORTED_INDEX; @@ -155,6 
+156,8 @@                 BPlusTree tree = trees0.get(i);                  try 
\{+                    U.sleep(10000L);+                     tree.destroy(null, 
true);                 }                 catch (IgniteCheckedException e) 
\{Index: 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.javaIDEA
 additional info:Subsystem: 
com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
 (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
 (date 1587247548691)@@ -30,6 +30,7 @@ import 
org.apache.ignite.failure.StopNodeFailureHandler; import 
org.apache.ignite.internal.IgniteEx; import 
org.apache.ignite.internal.processors.cache.index.AbstractIndexingCommonTest;+import
 org.apache.ignite.internal.util.typedef.internal.U; import 
org.apache.ignite.testframework.GridTestUtils; import org.h2.result.LazyResult; 
import org.h2.result.ResultInterface;@@ -78,6 +79,8 @@     @Override protected 
void afterTest() throws Exception {         stopAllGrids(); +        
U.sleep(20000L);+         super.afterTest();     } 
{code}

 * Start {{LocalQueryLazyTest#testDeactivateWithOpenCursor()}} test without 
{{-ea}} VM option.

  was:
We could get JVM crash if a cluster has indexes and the node has been stopped 
right after deactivation.We could get JVM crash if a cluster has indexes and 
the node has been stopped right after deactivation.


 Scenario:
 * Apply patch:
{code:java}
Index: 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.javaIDEA
 additional info:Subsystem: 
com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
 (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
 (date 1587246501828)@@ -30,6 +30,7 @@ import 
org.apache.ignite.internal.processors.query.h2.database.H2Tree; import 
org.apache.ignite.internal.util.typedef.internal.CU; import 
org.apache.ignite.internal.util.typedef.internal.S;+import 
org.apache.ignite.internal.util.typedef.internal.U;  import static 
org.apache.ignite.internal.metric.IoStatisticsType.SORTED_INDEX; @@ -155,6 
+156,8 @@                 BPlusTree tree = trees0.get(i);                  try 
\{+                    U.sleep(10000L);+                     tree.destroy(null, 
true);                 }                 catch (IgniteCheckedException e) 
\{Index: 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.javaIDEA
 additional info:Subsystem: 
com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
 (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
 (date 1587247548691)@@ -30,6 +30,7 @@ import 
org.apache.ignite.failure.StopNodeFailureHandler; import 
org.apache.ignite.internal.IgniteEx; import 
org.apache.ignite.internal.processors.cache.index.AbstractIndexingCommonTest;+import
 org.apache.ignite.internal.util.typedef.internal.U; import 
org.apache.ignite.testframework.GridTestUtils; import org.h2.result.LazyResult; 
import org.h2.result.ResultInterface;@@ -78,6 +79,8 @@     @Override protected 
void afterTest() throws Exception {         stopAllGrids(); +        
U.sleep(20000L);+         super.afterTest();     } 
{code}

 * Start {{LocalQueryLazyTest#testDeactivateWithOpenCursor()}} test without 
{{-ea}} VM option.


> Cluster deactivation could lead to JVM crash.
> ---------------------------------------------
>
>                 Key: IGNITE-13444
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13444
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>            Reporter: Maria Makedonskaya
>            Assignee: Maria Makedonskaya
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> We could get JVM crash if a cluster has indexes and index deletion task tries 
> to run on deactivated grid.  We shouldn't start new tasks on a deactivated 
> grid. Also, interrupt the execution of current tasks.
> Scenario:
>  * Apply patch:
> {code:java}
> Index: 
> modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.javaIDEA
>  additional info:Subsystem: 
> com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
>  
> modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
>  (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
> modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/DurableBackgroundCleanupIndexTreeTask.java
>  (date 1587246501828)@@ -30,6 +30,7 @@ import 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree; import 
> org.apache.ignite.internal.util.typedef.internal.CU; import 
> org.apache.ignite.internal.util.typedef.internal.S;+import 
> org.apache.ignite.internal.util.typedef.internal.U;  import static 
> org.apache.ignite.internal.metric.IoStatisticsType.SORTED_INDEX; @@ -155,6 
> +156,8 @@                 BPlusTree tree = trees0.get(i);                  
> try \{+                    U.sleep(10000L);+                     
> tree.destroy(null, true);                 }                 catch 
> (IgniteCheckedException e) \{Index: 
> modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.javaIDEA
>  additional info:Subsystem: 
> com.intellij.openapi.diff.impl.patch.CharsetEP<+>UTF-8===================================================================---
>  
> modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
>  (revision fc4ed408be9a0bb8d1f3d2c538a1b2ce8951320e)+++ 
> modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/LocalQueryLazyTest.java
>  (date 1587247548691)@@ -30,6 +30,7 @@ import 
> org.apache.ignite.failure.StopNodeFailureHandler; import 
> org.apache.ignite.internal.IgniteEx; import 
> org.apache.ignite.internal.processors.cache.index.AbstractIndexingCommonTest;+import
>  org.apache.ignite.internal.util.typedef.internal.U; import 
> org.apache.ignite.testframework.GridTestUtils; import 
> org.h2.result.LazyResult; import org.h2.result.ResultInterface;@@ -78,6 +79,8 
> @@     @Override protected void afterTest() throws Exception {         
> stopAllGrids(); +        U.sleep(20000L);+         super.afterTest();     } 
> {code}
>  * Start {{LocalQueryLazyTest#testDeactivateWithOpenCursor()}} test without 
> {{-ea}} VM option.



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

Reply via email to