You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Swapnil Bawaskar (JIRA)" <ji...@apache.org> on 2018/04/09 22:37:19 UTC

[jira] [Closed] (GEODE-4142) When processing the beforeCompletion message, transaction should check if the transaction has been completed already

     [ https://issues.apache.org/jira/browse/GEODE-4142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Swapnil Bawaskar closed GEODE-4142.
-----------------------------------

> When processing the beforeCompletion message, transaction should check if the transaction has been completed already
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-4142
>                 URL: https://issues.apache.org/jira/browse/GEODE-4142
>             Project: Geode
>          Issue Type: Bug
>          Components: transactions
>            Reporter: Eric Shu
>            Assignee: Eric Shu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.5.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The following NPE could occur if the JTA has been committed but client connection was lost. The client retries the afterCompletion on another node. Needs to check if the JTA has been completed/committed already.
> {noformat}
> java.lang.NullPointerException
>         at org.apache.geode.internal.cache.JtaBeforeCompletionMessage.operateOnTx(JtaBeforeCompletionMessage.java:66)
>         at org.apache.geode.internal.cache.TXMessage.process(TXMessage.java:88)
>         at org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:374)
>         at org.apache.geode.distributed.internal.DistributionMessage.schedule(DistributionMessage.java:432)
>         at org.apache.geode.distributed.internal.DistributionManager.scheduleIncomingMessage(DistributionManager.java:3554)
>         at org.apache.geode.distributed.internal.DistributionManager.handleIncomingDMsg(DistributionManager.java:3188)
>         at org.apache.geode.distributed.internal.DistributionManager$MyListener.messageReceived(DistributionManager.java:4363)
>         at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.dispatchMessage(GMSMembershipManager.java:1127)
>         at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.handleOrDeferMessage(GMSMembershipManager.java:1045)
>         at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager$MyDCReceiver.messageReceived(GMSMembershipManager.java:408)
>         at org.apache.geode.distributed.internal.direct.DirectChannel.receive(DirectChannel.java:715)
>         at org.apache.geode.internal.tcp.TCPConduit.messageReceived(TCPConduit.java:875)
>         at org.apache.geode.internal.tcp.Connection.dispatchMessage(Connection.java:3967)
>         at org.apache.geode.internal.tcp.Connection.processNIOBuffer(Connection.java:3553)
>         at org.apache.geode.internal.tcp.Connection.runNioReader(Connection.java:1829)
>         at org.apache.geode.internal.tcp.Connection.run(Connection.java:1690)
>         at java.lang.Thread.run(Thread.java:745)
> {noformat}



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