This is an automated email from the ASF dual-hosted git repository. jasonhuynh pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push: new a1bed42 Revert "GEODE-3967: There're following 9 problems fixed here:" a1bed42 is described below commit a1bed426f0606f158d54047205e1cdfe18383920 Author: Jason Huynh <huyn...@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 d6ce8a2..6c51dc5 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 @@ -5692,8 +5692,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; } @@ -6192,7 +6190,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; } @@ -6585,7 +6584,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); } } }