You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by nn...@apache.org on 2018/09/27 04:03:11 UTC

[geode] branch release/1.7.0 updated: Revert "GEODE-3967: There're following 9 problems fixed here:"

This is an automated email from the ASF dual-hosted git repository.

nnag pushed a commit to branch release/1.7.0
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/release/1.7.0 by this push:
     new 38dd001  Revert "GEODE-3967: There're following 9 problems fixed here:"
38dd001 is described below

commit 38dd00103913b40a6f4f395f1e4daa79834b0195
Author: Jason Huynh <hu...@gmail.com>
AuthorDate: Wed Sep 26 16:38:35 2018 -0700

    Revert "GEODE-3967: There're following 9 problems fixed here:"
    
    This reverts commit de7c6d8b4a9b3e2c1c0ebd4ce1835aff0007f9e1.
    This commit seems to increase the likelihood of causing an WAN inconsistency
---
 .../geode/internal/cache/AbstractUpdateOperation.java      |  8 +-------
 .../java/org/apache/geode/internal/cache/LocalRegion.java  |  6 ++----
 .../wan/serial/SerialGatewaySenderEventProcessor.java      | 14 +++-----------
 3 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
index 6ec4453..2c2da45 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
@@ -142,12 +142,6 @@ public abstract class AbstractUpdateOperation extends DistributedCacheOperation
               }
               doUpdate = false;
             }
-            if (ev.isConcurrencyConflict()) {
-              if (logger.isDebugEnabled()) {
-                logger.debug("basicUpdate failed with CME, not to retry:" + ev);
-              }
-              doUpdate = false;
-            }
           }
         } finally {
           if (isBucket) {
@@ -181,7 +175,7 @@ public abstract class AbstractUpdateOperation extends DistributedCacheOperation
                   || (rgn.getDataPolicy().withReplication() && rgn.getConcurrencyChecksEnabled())) {
                 overwriteDestroyed = true;
                 ev.makeCreate();
-                rgn.basicUpdate(ev, false /* ifNew */, false/* ifOld */, lastMod,
+                rgn.basicUpdate(ev, true /* ifNew */, false/* ifOld */, lastMod,
                     overwriteDestroyed);
                 rgn.getCachePerfStats().endPut(startPut, ev.isOriginRemote());
                 updated = true;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index b5250f3..31d48fd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -5693,8 +5693,6 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
         logger.debug("caught concurrent modification attempt when applying {}", event);
       }
       notifyBridgeClients(event);
-      notifyGatewaySender(event.getOperation().isUpdate() ? EnumListenerEvent.AFTER_UPDATE
-          : EnumListenerEvent.AFTER_CREATE, event);
       return false;
     }
 
@@ -6193,7 +6191,8 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
   }
 
   protected void notifyGatewaySender(EnumListenerEvent operation, EntryEventImpl event) {
-    if (isPdxTypesRegion()) {
+    if (isPdxTypesRegion() || event.isConcurrencyConflict()) {
+      // isConcurrencyConflict is usually a concurrent cache modification problem
       return;
     }
 
@@ -6586,7 +6585,6 @@ public class LocalRegion extends AbstractRegion implements LoaderHelperFactory,
       // Notify clients only if its NOT a gateway event.
       if (event.getVersionTag() != null && !event.getVersionTag().isGatewayTag()) {
         notifyBridgeClients(event);
-        notifyGatewaySender(EnumListenerEvent.AFTER_DESTROY, event);
       }
       return true; // event was elided
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventProcessor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventProcessor.java
index 4d371ea..b2f9838 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventProcessor.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventProcessor.java
@@ -384,9 +384,6 @@ public class SerialGatewaySenderEventProcessor extends AbstractGatewaySenderEven
       if (m != null) {
         for (EventWrapper ew : m.values()) {
           GatewaySenderEventImpl gatewayEvent = ew.event;
-          if (logger.isDebugEnabled()) {
-            logger.debug("releaseUnprocessedEvents:" + gatewayEvent);
-          }
           gatewayEvent.release();
         }
         this.unprocessedEvents = null;
@@ -431,14 +428,9 @@ public class SerialGatewaySenderEventProcessor extends AbstractGatewaySenderEven
         } else {
           // If it is not, create an uninitialized GatewayEventImpl and
           // put it into the map of unprocessed events.
-          // 2 Special cases:
-          // 1) UPDATE_VERSION_STAMP: only enqueue to primary
-          // 2) CME && !originRemote: only enqueue to primary
-          if (!(event.getOperation().equals(Operation.UPDATE_VERSION_STAMP)
-              || ((EntryEventImpl) event).isConcurrencyConflict() && !event.isOriginRemote())) {
-            senderEvent = new GatewaySenderEventImpl(operation, event, substituteValue, false); // OFFHEAP
-            handleSecondaryEvent(senderEvent);
-          }
+          senderEvent = new GatewaySenderEventImpl(operation, event, substituteValue, false); // OFFHEAP
+                                                                                              // ok
+          handleSecondaryEvent(senderEvent);
         }
       }
     }