Eric Shu created GEODE-4738:
-------------------------------

             Summary: EventSeqNum and versionVector in a region are accessed 
when they are not yet initialized
                 Key: GEODE-4738
                 URL: https://issues.apache.org/jira/browse/GEODE-4738
             Project: Geode
          Issue Type: Bug
          Components: regions
            Reporter: Eric Shu


It is possible that eventSeqNum and versionVector are accessed when they are  
not initialized yet. This could cause transaction to fail on the node just 
start up.

{noformat}
Got unexpected exception org.apache.geode.cache.CommitIncompleteException: 
Incomplete commit of transaction TXId: 
rs-FullRegression-2018-02-10-05-01-42-client-1(bridgegemfire6_rs-FullRegression-2018-02-10-05-01-42-client-1_19376:19376)<ec><v33>:1030:4865.
  Caused by the following exceptions:  From member: 
rs-FullRegression-2018-02-10-05-01-42-client-1(bridgegemfire4_rs-FullRegression-2018-02-10-05-01-42-client-1_15810:15810)<ec><v25>:1026
 java.lang.NullPointerException
        at 
org.apache.geode.internal.concurrent.Atomics.setIfGreater(Atomics.java:56)
        at 
org.apache.geode.internal.cache.BucketRegion.handleWANEvent(BucketRegion.java:576)
        at 
org.apache.geode.internal.cache.AbstractRegionMap.txHandleWANEvent(AbstractRegionMap.java:2938)
        at 
org.apache.geode.internal.cache.AbstractRegionMap.txApplyPut(AbstractRegionMap.java:2647)
        at 
org.apache.geode.internal.cache.LocalRegion.txApplyPut(LocalRegion.java:5068)
        at 
org.apache.geode.internal.cache.TXCommitMessage$RegionCommit.txApplyEntryOp(TXCommitMessage.java:1287)
        at 
org.apache.geode.internal.cache.TXCommitMessage$RegionCommit$FarSideEntryOp.process(TXCommitMessage.java:1597)
        at 
org.apache.geode.internal.cache.TXCommitMessage.basicProcessOps(TXCommitMessage.java:711)
        at 
org.apache.geode.internal.cache.TXCommitMessage.basicProcess(TXCommitMessage.java:638)
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitProcessMessage.basicProcess(TXCommitMessage.java:1784)
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitProcessForTXIdMessage.process(TXCommitMessage.java:1747)
        at 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
        at 
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:448)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:1117)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.access$000(ClusterDistributionManager.java:108)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager$4$1.run(ClusterDistributionManager.java:788)
        at java.lang.Thread.run(Thread.java:748).
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitExceptionCollectingException.handlePotentialCommitFailure(TXCommitMessage.java:2203)
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitReplyProcessor.waitForCommitCompletion(TXCommitMessage.java:2104)
        at 
org.apache.geode.internal.cache.TXCommitMessage.send(TXCommitMessage.java:418)
        at org.apache.geode.internal.cache.TXState.commit(TXState.java:473)
        at 
org.apache.geode.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:228)
        at 
org.apache.geode.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:405)
        at 
org.apache.geode.internal.cache.TXRemoteCommitMessage.operateOnTx(TXRemoteCommitMessage.java:98)
        at org.apache.geode.internal.cache.TXMessage.process(TXMessage.java:94)
        at 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
        at 
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:448)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:1117)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.access$000(ClusterDistributionManager.java:108)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager$6$1.run(ClusterDistributionManager.java:862)
        at java.lang.Thread.run(Thread.java:748)
{noformat}

And 
{noformat}
Got unexpected exception org.apache.geode.cache.CommitIncompleteException: 
Incomplete commit of transaction TXId: 
r02-s02(edgegemfire2_r02-s02_10305:10305:loner):36970:e226a1a8:edgegemfire2_r02-s02_10305:11669.
  Caused by the following exceptions:  From member: 
r02-s02(bridgegemfire4_r02-s02_11665:11665)<ec><v11>:1025 
java.lang.NullPointerException
        at 
org.apache.geode.internal.cache.entries.AbstractRegionEntry.applyVersionTag(AbstractRegionEntry.java:1866)
 
        at 
org.apache.geode.internal.cache.entries.AbstractRegionEntry.basicProcessVersionTag(AbstractRegionEntry.java:1855)
        at 
org.apache.geode.internal.cache.entries.AbstractRegionEntry.processVersionTag(AbstractRegionEntry.java:1795)
        at 
org.apache.geode.internal.cache.entries.AbstractRegionEntry.processVersionTag(AbstractRegionEntry.java:1692)
        at 
org.apache.geode.internal.cache.entries.VersionedThinRegionEntryOffHeapStringKey2.processVersionTag(VersionedThinRegionEntryOffHeapStringKey2.java:298)
        at 
org.apache.geode.internal.cache.AbstractRegionMap.processVersionTag(AbstractRegionMap.java:570)
        at 
org.apache.geode.internal.cache.AbstractRegionMap.processAndGenerateTXVersionTag(AbstractRegionMap.java:2960)
        at 
org.apache.geode.internal.cache.AbstractRegionMap.txApplyPut(AbstractRegionMap.java:2873)
        at 
org.apache.geode.internal.cache.LocalRegion.txApplyPut(LocalRegion.java:5079)
        at 
org.apache.geode.internal.cache.TXCommitMessage$RegionCommit.txApplyEntryOp(TXCommitMessage.java:1287)
        at 
org.apache.geode.internal.cache.TXCommitMessage$RegionCommit$FarSideEntryOp.process(TXCommitMessage.java:1597)
        at 
org.apache.geode.internal.cache.TXCommitMessage.basicProcessOps(TXCommitMessage.java:711)
        at 
org.apache.geode.internal.cache.TXCommitMessage.basicProcess(TXCommitMessage.java:638)
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitProcessMessage.basicProcess(TXCommitMessage.java:1784)
        at 
org.apache.geode.internal.cache.TXCommitMessage$CommitProcessForTXIdMessage.process(TXCommitMessage.java:1747)
        at 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
        at 
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:448)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:1118)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager.access$000(ClusterDistributionManager.java:109)
        at 
org.apache.geode.distributed.internal.ClusterDistributionManager$4$1.run(ClusterDistributionManager.java:789)
        at java.lang.Thread.run(Thread.java:745).
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXCommitMessage$CommitExceptionCollectingException.handlePotentialCommitFailure(TXCommitMessage.java:2208)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXCommitMessage$CommitReplyProcessor.waitForCommitCompletion(TXCommitMessage.java:2109)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXCommitMessage.send(TXCommitMessage.java:418)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXState.commit(TXState.java:473)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:228)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:405)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXRemoteCommitMessage.operateOnTx(TXRemoteCommitMessage.java:98)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.internal.cache.TXMessage.process(TXMessage.java:94)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:448)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:1118)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.distributed.internal.ClusterDistributionManager.access$000(ClusterDistributionManager.java:109)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
org.apache.geode.distributed.internal.ClusterDistributionManager$6$1.run(ClusterDistributionManager.java:863)
        at Remote Member 
'r02-s02(bridgegemfire5_r02-s02_8278:8278)<ec><v3>:1026' in 
java.lang.Thread.run(Thread.java:745)
        at 
org.apache.geode.distributed.internal.ReplyException.handleCause(ReplyException.java:87)
        at 
org.apache.geode.internal.cache.tx.RemoteOperationMessage$RemoteOperationResponse.waitForRemoteResponse(RemoteOperationMessage.java:555)
        at 
org.apache.geode.internal.cache.TXRemoteCommitMessage$RemoteCommitResponse.waitForResponse(TXRemoteCommitMessage.java:273)
        at 
org.apache.geode.internal.cache.PeerTXStateStub.commit(PeerTXStateStub.java:106)
        at 
org.apache.geode.internal.cache.TXStateProxyImpl.commit(TXStateProxyImpl.java:228)
        at 
org.apache.geode.internal.cache.TXManagerImpl.commit(TXManagerImpl.java:405)
        at 
org.apache.geode.internal.cache.tier.sockets.command.CommitCommand.cmdExecute(CommitCommand.java:85)
        at 
org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:157)
        at 
org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:797)
        at 
org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:85)
        at 
org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1177)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$4$1.run(AcceptorImpl.java:639)
        at java.lang.Thread.run(Thread.java:745)
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to