Fix for failed assert in GridH2Table.destroy: need wait for local message handlers.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ec5923a3 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ec5923a3 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ec5923a3 Branch: refs/heads/ignite-3477-master Commit: ec5923a39520ed6b14f5e4d71e8f743badd0e6ab Parents: 5d9323c Author: sboikov <[email protected]> Authored: Tue Mar 21 15:51:30 2017 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Wed Mar 29 19:29:36 2017 +0300 ---------------------------------------------------------------------- .../internal/processors/query/h2/IgniteH2Indexing.java | 10 +++++++++- .../internal/processors/query/h2/opt/GridH2Table.java | 9 +-------- .../query/h2/twostep/GridReduceQueryExecutor.java | 1 - 3 files changed, 10 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/ec5923a3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java index e663768..19e5fb4 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java @@ -2173,7 +2173,15 @@ public class IgniteH2Indexing implements GridQueryIndexing { // We prefer runLocal to runLocalSafe, because the latter can produce deadlock here. ctx.closure().runLocal(new GridPlainRunnable() { @Override public void run() { - locNodeHnd.apply(finalLocNode, finalMsg); + if (!busyLock.enterBusy()) + return; + + try { + locNodeHnd.apply(finalLocNode, finalMsg); + } + finally { + busyLock.leaveBusy(); + } } }, plc).listen(logger); } http://git-wip-us.apache.org/repos/asf/ignite/blob/ec5923a3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java index 12f799a..89a010d 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java @@ -438,14 +438,7 @@ public class GridH2Table extends TableBase { Lock l = lock(true, Long.MAX_VALUE); try { - /* assert sessions.isEmpty() : sessions;*/ - - //todo only for investigation - if (!sessions.isEmpty()){ - U.dumpThreads(null); - - assert sessions.isEmpty() : sessions; - } + assert sessions.isEmpty() : sessions; destroyed = true; http://git-wip-us.apache.org/repos/asf/ignite/blob/ec5923a3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java index 0f62b4b..fad3de8 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java @@ -84,7 +84,6 @@ import org.apache.ignite.internal.util.typedef.X; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiClosure; import org.apache.ignite.lang.IgniteFuture; -import org.apache.ignite.lang.IgniteProductVersion; import org.apache.ignite.plugin.extensions.communication.Message; import org.h2.command.ddl.CreateTableData; import org.h2.engine.Session;
