[ https://issues.apache.org/jira/browse/GEODE-9484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532066#comment-17532066 ]
Ivan Godwin commented on GEODE-9484: ------------------------------------ Noting possible issue found during internal testing. Will analyze further and update. {code:java} [fatal 2022/05/04 18:27:45.084 GMT gemfire-cluster-server-3 <ServerConnection on port 40404 Thread 2> tid=0x6c] While pushing message <UpdateOperation$UpdateWithContextMessage(region path='/__PR/_B__gemfire-clients-564c765b59-vg4wb-region-8631f0c98b0a0892_0'; sender=gemfire-cluster-server-3(gemfire-cluster-server-3:1)<v4>:41000; callbackArg=null; processorId=0; op=CREATE; applied=false; directAck=true; posdup=false; hasDelta=false; hasOldValue=false; version={v1; rv1; time=1651688854339} FilterRoutingInfo(remote={gemfire-cluster-server-0(gemfire-cluster-server-0:1)<v2>:41000=}); lastModified=1651688854339; key=0; newValue=(5 bytes); eventId=EventID[id=58 bytes;threadID=853971;sequenceID=0]; deserializationPolicy=LAZY; context=identity(gemfire-clients-564c765b59-vg4wb(SpringBasedClientCacheApplication:1:loner):48828:dd7d5290:SpringBasedClientCacheApplication,connection=1)> to recipients: <gemfire-cluster-server-0(gemfire-cluster-server-0:1)<v2>:41000> java.lang.NullPointerException at org.apache.geode.internal.tcp.TCPConduit.getFirstScanForConnection(TCPConduit.java:958) at org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:477) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:277) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:186) at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:541) at org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:348) at org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:293) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2067) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1994) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2031) at org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1088) at org.apache.geode.internal.cache.DistributedCacheOperation._distribute(DistributedCacheOperation.java:556) at org.apache.geode.internal.cache.DistributedCacheOperation.startOperation(DistributedCacheOperation.java:267) at org.apache.geode.internal.cache.BucketRegion.basicPutPart2(BucketRegion.java:715) at org.apache.geode.internal.cache.map.RegionMapPut.doBeforeCompletionActions(RegionMapPut.java:282) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutAndDeliverEvent(AbstractRegionMapPut.java:301) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.runWithIndexUpdatingInProgress(AbstractRegionMapPut.java:308) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutIfPreconditionsSatisified(AbstractRegionMapPut.java:296) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutOnSynchronizedRegionEntry(AbstractRegionMapPut.java:282) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutOnRegionEntryInMap(AbstractRegionMapPut.java:273) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.addRegionEntryToMapAndDoPut(AbstractRegionMapPut.java:251) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPutRetryingIfNeeded(AbstractRegionMapPut.java:216) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doWithIndexInUpdateMode(AbstractRegionMapPut.java:198) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPut(AbstractRegionMapPut.java:180) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.runWhileLockedForCacheModification(AbstractRegionMapPut.java:119) at org.apache.geode.internal.cache.map.RegionMapPut.runWhileLockedForCacheModification(RegionMapPut.java:161) at org.apache.geode.internal.cache.map.AbstractRegionMapPut.put(AbstractRegionMapPut.java:169) at org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2016) at org.apache.geode.internal.cache.BucketRegion.virtualPut(BucketRegion.java:544) at org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5635) at org.apache.geode.internal.cache.PartitionedRegionDataStore.putLocally(PartitionedRegionDataStore.java:1193) at org.apache.geode.internal.cache.PartitionedRegion.putInBucket(PartitionedRegion.java:3033) at org.apache.geode.internal.cache.PartitionedRegion.virtualPut(PartitionedRegion.java:2248) at org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:171) at org.apache.geode.internal.cache.LocalRegion.basicUpdate(LocalRegion.java:5628) at org.apache.geode.internal.cache.LocalRegion.basicUpdate(LocalRegion.java:5588) at org.apache.geode.internal.cache.LocalRegion.basicBridgePut(LocalRegion.java:5259) at org.apache.geode.internal.cache.tier.sockets.command.Put70.cmdExecute(Put70.java:384) at org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:187) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMessage(ServerConnection.java:880) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:1074) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1356) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.lambda$initializeServerConnectionThreadPool$3(AcceptorImpl.java:690) at org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:120) at java.base/java.lang.Thread.run(Thread.java:829) {code} > Data inconsistency in replicated region with 3 or more servers, and one > server is down > --------------------------------------------------------------------------------------- > > Key: GEODE-9484 > URL: https://issues.apache.org/jira/browse/GEODE-9484 > Project: Geode > Issue Type: Improvement > Components: client/server, regions > Affects Versions: 1.13.0 > Reporter: Mario Ivanac > Assignee: Mario Ivanac > Priority: Major > Labels: pull-request-available > Fix For: 1.15.0 > > > We have configured replicated region with 3 or more servers, and client is > configured with read timeout set to value same or smaller than member timeout. > In case while client is putting data in region, one of replicated servers is > shutdown, it is observed that we have data inconsistency. > > We see that data part of data is written in server connected with client, but > in remaining replicated servers it is missing. -- This message was sent by Atlassian Jira (v8.20.7#820007)