You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/02/15 08:52:22 UTC

[38/50] [abbrv] ignite git commit: ignite-split2 - test fix

ignite-split2 - test fix


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/baba5728
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/baba5728
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/baba5728

Branch: refs/heads/ignite-1232
Commit: baba57287f962551dd87234fe80c2ddf3e5ca2cc
Parents: 2bdbd7e
Author: S.Vladykin <sv...@gridgain.com>
Authored: Sat Dec 26 12:59:32 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Sat Dec 26 12:59:32 2015 +0300

----------------------------------------------------------------------
 .../offheap/unsafe/GridOffHeapSnapTreeMap.java  |  5 +++--
 .../query/h2/opt/GridH2QueryContext.java        | 22 ++++++++++++++------
 .../processors/query/h2/opt/GridH2Table.java    |  2 ++
 .../query/h2/opt/GridH2TreeIndex.java           |  2 ++
 4 files changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/baba5728/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
index 9b136d2..7bde651 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java
@@ -1048,7 +1048,7 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends
     private volatile StoppableRecycleQueue recycleBin;
 
     /** */
-    private final AtomicInteger reservations = new AtomicInteger();
+    private AtomicInteger reservations;
 
     /** */
     private volatile boolean closing;
@@ -1125,7 +1125,7 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends
     @Override public void close() {
         closing = true;
 
-        if (reservations.compareAndSet(0, -1))
+        if (reservations == null || reservations.compareAndSet(0, -1))
             doClose();
     }
 
@@ -1192,6 +1192,7 @@ public class GridOffHeapSnapTreeMap<K extends GridOffHeapSmartPointer,V extends
         copy.holderRef = rootHolder(holderRef);
         markShared(root());
 
+        copy.reservations = new AtomicInteger();
         copy.size = new AtomicInteger(size());
         copy.recycleBin = new StoppableRecycleQueue();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/baba5728/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java
index d5fc41d..223dad6 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2QueryContext.java
@@ -245,6 +245,21 @@ public class GridH2QueryContext {
     }
 
     /**
+     * Clear taken snapshots.
+     */
+    public void clearSnapshots() {
+        if (F.isEmpty(snapshots))
+            return;
+
+        for (Object snapshot : snapshots.values()) {
+            if (snapshot instanceof GridReservable)
+                ((GridReservable)snapshot).release();
+        }
+
+        snapshots = null;
+    }
+
+    /**
      * @param idxId Index ID.
      * @return Index snapshot or {@code null} if none.
      */
@@ -389,12 +404,7 @@ public class GridH2QueryContext {
 
         assert x.key.equals(key);
 
-        if (!F.isEmpty(x.snapshots)) {
-            for (Object snapshot : x.snapshots.values()) {
-                if (snapshot instanceof GridReservable)
-                    ((GridReservable)snapshot).release();
-            }
-        }
+        x.clearSnapshots();
 
         List<GridReservable> r = x.reservations;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/baba5728/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 ac21807..afdf40f 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
@@ -395,6 +395,8 @@ public class GridH2Table extends TableBase {
 
             if (reuseExisting && s == null) { // Existing snapshot was invalidated before we were able to reserve it.
                 // Release already taken snapshots.
+                qctx.clearSnapshots();
+
                 for (int j = 1; j < i; j++)
                     index(j).releaseSnapshot();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/baba5728/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
index 95efc8e..1d4efff 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
@@ -376,6 +376,8 @@ public class GridH2TreeIndex extends GridH2IndexBase implements Comparator<GridS
 
     /** {@inheritDoc} */
     @Override protected Object doTakeSnapshot() {
+        assert snapshotEnabled;
+
         return tree instanceof SnapTreeMap ?
             ((SnapTreeMap)tree).clone() :
             ((GridOffHeapSnapTreeMap)tree).clone();