# ignite-560 debug

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

Branch: refs/heads/ignite-560
Commit: 686508342cff5bd5a1b968e0396f2246771b766b
Parents: a05157b
Author: sboikov <sboi...@gridgain.com>
Authored: Mon Apr 6 10:28:09 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Mon Apr 6 10:29:55 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMapEntry.java     | 73 +++++++++++++++++---
 .../dht/atomic/GridDhtAtomicCache.java          |  6 ++
 .../distributed/near/GridNearAtomicCache.java   |  4 ++
 .../distributed/near/GridNearCacheEntry.java    |  4 ++
 .../GridCacheAbstractRemoveFailureTest.java     |  8 +++
 5 files changed, 84 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68650834/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 5924129..e65c744 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -169,6 +169,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         ver = cctx.versions().next();
 
         startVer = ver.order();
+
+        TestDebugLog.addEntryMessage(keyValue(false), 
getClass().getSimpleName(), "created");
     }
 
     /** {@inheritDoc} */
@@ -184,6 +186,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     protected void value(@Nullable CacheObject val) {
         assert Thread.holdsLock(this);
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "set value");
+
         // In case we deal with IGFS cache, count updated data
         if (cctx.cache().isIgfsDataCache() &&
             
cctx.kernalContext().igfsHelper().isIgfsBlockKey(key.value(cctx.cacheObjectContext(),
 false))) {
@@ -844,6 +848,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         throws IgniteCheckedException, GridCacheEntryRemovedException {
         CU.checkStore(cctx);
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "initialReload");
+
         GridCacheVersion startVer;
 
         boolean wasNew;
@@ -1604,6 +1610,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     ) throws IgniteCheckedException, GridCacheEntryRemovedException, 
GridClosureException {
         assert cctx.atomic();
 
+        TestDebugLog.addEntryMessage(keyValue(false), 
CU.value((CacheObject)writeObj, cctx, false), "innerUpdate");
+
         boolean res = true;
 
         CacheObject oldVal;
@@ -2036,8 +2044,19 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
                         deletedUnlocked(false);
                 }
                 else {
-                    assert !deletedUnlocked() : "Invalid entry [entry=" + this 
+
-                        ", locNodeId=" + cctx.localNodeId() + ']';
+                    try {
+                        assert !deletedUnlocked() : "Invalid entry [entry=" + 
this +
+                            ", locNodeId=" + cctx.localNodeId() + ']';
+                    }
+                    catch (AssertionError e) {
+                        e.printStackTrace();
+
+                        TestDebugLog.addEntryMessage(keyValue(false), 
CU.value(updated, cctx, false), "Failed innerUpdate: " + e.getMessage());
+
+                        TestDebugLog.printKeyMessages(null, keyValue(false));
+
+                        System.exit(1);
+                    }
 
                     // Do not change size.
                 }
@@ -2320,6 +2339,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         boolean rmv;
         boolean marked;
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "clear");
+
         while (true) {
             ret = false;
             rmv = false;
@@ -2533,6 +2554,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         throws IgniteCheckedException {
         assert newVer != null;
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "invalidate");
+
         if (curVer == null || ver.equals(curVer)) {
             CacheObject val = saveValueForIndexUnlocked();
 
@@ -2560,6 +2583,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     /** {@inheritDoc} */
     @Override public boolean invalidate(@Nullable CacheEntryPredicate[] filter)
         throws GridCacheEntryRemovedException, IgniteCheckedException {
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "invalidate2");
+
         if (F.isEmptyOrNulls(filter)) {
             synchronized (this) {
                 checkObsolete();
@@ -2696,8 +2721,11 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     protected void checkObsolete() throws GridCacheEntryRemovedException {
         assert Thread.holdsLock(this);
 
-        if (obsoleteVersionExtras() != null)
+        if (obsoleteVersionExtras() != null) {
+            TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "wasObsolete throw");
+
             throw new GridCacheEntryRemovedException();
+        }
     }
 
     /** {@inheritDoc} */
@@ -2957,6 +2985,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     @Override public synchronized CacheObject rawPut(CacheObject val, long 
ttl) {
         CacheObject old = this.val;
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "rawPut");
+
         update(val, CU.toExpireTime(ttl), ttl, nextVersion());
 
         return old;
@@ -2977,6 +3007,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
             checkObsolete();
 
             if (isNew() || (!preload && deletedUnlocked())) {
+                TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, 
cctx, false), "initialValue");
+
                 long expTime = expireTime < 0 ? CU.toExpireTime(ttl) : 
expireTime;
 
                 val = cctx.kernalContext().cacheObjects().prepareForCache(val, 
cctx);
@@ -3029,6 +3061,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         checkObsolete();
 
         if (isNew()) {
+            TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "initialValueSwap");
+
             CacheObject val = unswapped.value();
 
             val = cctx.kernalContext().cacheObjects().prepareForCache(val, 
cctx);
@@ -3068,6 +3102,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
     {
         checkObsolete();
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "versionedValue");
+
         if (curVer == null || curVer.equals(ver)) {
             if (val != this.val) {
                 if (newVer == null)
@@ -3611,6 +3647,8 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         @Nullable CacheEntryPredicate[] filter) throws IgniteCheckedException {
         boolean marked = false;
 
+        TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "evict");
+
         try {
             if (F.isEmptyOrNulls(filter)) {
                 synchronized (this) {
@@ -3992,19 +4030,32 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
         assert Thread.holdsLock(this);
         assert cctx.deferredDelete();
 
-        if (deleted) {
-            assert !deletedUnlocked() : this;
+        TestDebugLog.addEntryMessage(keyValue(false), deleted, "deleted 
unlocked");
+
+        try {
+            if (deleted) {
+                assert !deletedUnlocked() : this;
+
+                flags |= IS_DELETED_MASK;
+
+                cctx.decrementPublicSize(this);
+            }
+            else {
+                assert deletedUnlocked() : this;
 
-            flags |= IS_DELETED_MASK;
+                flags &= ~IS_DELETED_MASK;
 
-            cctx.decrementPublicSize(this);
+                cctx.incrementPublicSize(this);
+            }
         }
-        else {
-            assert deletedUnlocked() : this;
+        catch (AssertionError e) {
+            e.printStackTrace();
+
+            TestDebugLog.addEntryMessage(keyValue(false), CU.value(val, cctx, 
false), "Failed deletedUnlocked: " + e.getMessage());
 
-            flags &= ~IS_DELETED_MASK;
+            TestDebugLog.printKeyMessages(null, keyValue(false));
 
-            cctx.incrementPublicSize(this);
+            System.exit(1);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68650834/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index be9a963..2f30af0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -1696,6 +1696,8 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
                     filteredReaders = F.view(entry.readers(), 
F.notEqualTo(node.id()));
                 }
 
+                TestDebugLog.addEntryMessage(CU.value(entry.key(), ctx, 
false), CU.value((CacheObject)writeVal, ctx, false), "update single");
+
                 GridCacheUpdateAtomicResult updRes = entry.innerUpdate(
                     ver,
                     node.id(),
@@ -1964,6 +1966,8 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
                         filteredReaders = F.view(entry.readers(), 
F.notEqualTo(node.id()));
                     }
 
+                    TestDebugLog.addEntryMessage(CU.value(entry.key(), ctx, 
false), CU.value(writeVal, ctx, false), "update partial");
+
                     GridCacheUpdateAtomicResult updRes = entry.innerUpdate(
                         ver,
                         node.id(),
@@ -2468,6 +2472,8 @@ public class GridDhtAtomicCache<K, V> extends 
GridDhtCacheAdapter<K, V> {
                         long ttl = req.ttl(i);
                         long expireTime = req.conflictExpireTime(i);
 
+                        TestDebugLog.addEntryMessage(CU.value(key, ctx, 
false), CU.value(val, ctx, false), "backup update");
+
                         GridCacheUpdateAtomicResult updRes = entry.innerUpdate(
                             ver,
                             nodeId,

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68650834/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
index 6069849..aa55a8a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -214,6 +214,8 @@ public class GridNearAtomicCache<K, V> extends 
GridNearCacheAdapter<K, V> {
 
                     GridCacheOperation op = (val != null || valBytes != null) 
? UPDATE : DELETE;
 
+                    TestDebugLog.addEntryMessage(CU.value(entry.key(), ctx, 
false), CU.value((CacheObject)val, ctx, false), "update near response");
+
                     GridCacheUpdateAtomicResult updRes = entry.innerUpdate(
                         ver,
                         nodeId,
@@ -311,6 +313,8 @@ public class GridNearAtomicCache<K, V> extends 
GridNearCacheAdapter<K, V> {
                         long ttl = req.nearTtl(i);
                         long expireTime = req.nearExpireTime(i);
 
+                        TestDebugLog.addEntryMessage(CU.value(entry.key(), 
ctx, false), CU.value((CacheObject)val, ctx, false), "update reader");
+
                         GridCacheUpdateAtomicResult updRes = entry.innerUpdate(
                             ver,
                             nodeId,

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68650834/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
index 13089aa..68ef08d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
@@ -154,6 +154,8 @@ public class GridNearCacheEntry extends 
GridDistributedCacheEntry {
                             checkObsolete();
 
                             if (isNew() || !valid(topVer)) {
+                                TestDebugLog.addEntryMessage(keyValue(false), 
CU.value(val, cctx, false), "init from DHT");
+
                                 // Version does not change for load ops.
                                 update(e.value(), e.expireTime(), e.ttl(), 
e.isNew() ? ver : e.version());
 
@@ -376,6 +378,8 @@ public class GridNearCacheEntry extends 
GridDistributedCacheEntry {
                 boolean hasVal = hasValueUnlocked();
 
                 if (isNew() || !valid || expVer == null || 
expVer.equals(this.dhtVer)) {
+                    TestDebugLog.addEntryMessage(keyValue(false), 
CU.value(val, cctx, false), "near loaded");
+
                     primaryNode(primaryNodeId, topVer);
 
                     // Change entry only if dht version has changed.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68650834/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractRemoveFailureTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractRemoveFailureTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractRemoveFailureTest.java
index c6ede61..1cc6efa 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractRemoveFailureTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractRemoveFailureTest.java
@@ -98,6 +98,8 @@ public abstract class GridCacheAbstractRemoveFailureTest 
extends GridCacheAbstra
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
+
+        TestDebugLog.clear();
     }
 
     /** {@inheritDoc} */
@@ -133,11 +135,15 @@ public abstract class GridCacheAbstractRemoveFailureTest 
extends GridCacheAbstra
                         while (true) {
                             try {
                                 if (put) {
+                                    TestDebugLog.addEntryMessage(key, i, 
"put");
+
                                     sndCache0.put(key, i);
 
                                     expVals.put(key, F.t(i));
                                 }
                                 else {
+                                    TestDebugLog.addEntryMessage(key, null, 
"remove");
+
                                     sndCache0.remove(key);
 
                                     expVals.put(key, F.<Integer>t(null));
@@ -291,6 +297,8 @@ public abstract class GridCacheAbstractRemoveFailureTest 
extends GridCacheAbstra
             IgniteCache<Integer, Integer> cache = ignite.cache(null);
 
             for (Map.Entry<Integer, GridTuple<Integer>> expVal : 
expVals.entrySet()) {
+                TestDebugLog.addEntryMessage(expVal.getKey(), null, "get from 
" + i);
+
                 Integer val = cache.get(expVal.getKey());
 
                 if (!F.eq(expVal.getValue().get(), val)) {

Reply via email to