Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-4738

EventSeqNum and versionVector in a region are accessed when they are not yet initialized

    XMLWordPrintableJSON

Details

    Description

      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.

      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)
      

      And

      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)
      

      Attachments

        Issue Links

          Activity

            People

              eshu Eric Shu
              eshu Eric Shu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h