You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2018/06/05 17:37:01 UTC

[jira] [Commented] (GEODE-5283) Client transaction fails with TransactionException: GemFireInternalException: RemoteOperationException: cache is closing

    [ https://issues.apache.org/jira/browse/GEODE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16502181#comment-16502181 ] 

ASF subversion and git services commented on GEODE-5283:
--------------------------------------------------------

Commit dbdd78826b6254e0ee58a29f4d0185028d7b3eeb in geode's branch refs/heads/feature/GEODE-5277 from [~bschuchardt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=dbdd788 ]

GEODE-5283: Client transaction fails with TransactionException: GemFireInternalException

Modified the exception returned to include a CacheClosedException as the cause
and added error handling for this in the reply-processor code

Added a test for this error handling.

This closes #2020


> Client transaction fails with TransactionException: GemFireInternalException: RemoteOperationException: cache is closing
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-5283
>                 URL: https://issues.apache.org/jira/browse/GEODE-5283
>             Project: Geode
>          Issue Type: Test
>          Components: transactions
>            Reporter: Bruce Schuchardt
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.8.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> In January 2018 RemoteOperationMessage was altered to return different exceptions, notably to not return a CacheClosedException to the sender.  Instead it sends a RemoteOperationException with the text "cache is closing".  This RemoteOperationException is then rethrown when the reply is received but there is no handler for this and a generic GemFireInternalException is thrown.  That in turn is caught and wrapped in a TransactionException and returned to the client.
> Error handling needs to be altered so that this situation results in a TransactionDataNodeHasDepartedException.
> {noformat}
> unexpected exception org.apache.geode.cache.TransactionException: org.apache.geode.InternalGemFireException: unexpected exception on member rs-FullRegression210400555i32xlarge-hydra-client-27(bridgegemfire1_rs-FullRegression210400555i32xlarge-hydra-client-27_28567:28567)<ec><v2>:1032, caused by org.apache.geode.InternalGemFireException: unexpected exception on member rs-FullRegression210400555i32xlarge-hydra-client-27(bridgegemfire1_rs-FullRegression210400555i32xlarge-hydra-client-27_28567:28567)<ec><v2>:1032
> 	at org.apache.geode.internal.cache.tx.AbstractPeerTXRegionStub.getRegionKeysForIteration(AbstractPeerTXRegionStub.java:54)
> 	at org.apache.geode.internal.cache.TXStateStub.getRegionKeysForIteration(TXStateStub.java:678)
> 	at org.apache.geode.internal.cache.TXStateStub.getRegionKeysForIteration(TXStateStub.java:45)
> 	at org.apache.geode.internal.cache.TXStateProxyImpl.getRegionKeysForIteration(TXStateProxyImpl.java:772)
> 	at org.apache.geode.internal.cache.EntriesSet$EntriesIterator.createIterator(EntriesSet.java:213)
> 	at org.apache.geode.internal.cache.EntriesSet$EntriesIterator.<init>(EntriesSet.java:117)
> 	at org.apache.geode.internal.cache.EntriesSet.iterator(EntriesSet.java:83)
> 	at org.apache.geode.internal.cache.tier.sockets.command.KeySet.fillAndSendKeySetResponseChunks(KeySet.java:171)
> 	at org.apache.geode.internal.cache.tier.sockets.command.KeySet.cmdExecute(KeySet.java:129)
> 	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:868)
> 	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:1248)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$4$1.run(AcceptorImpl.java:644)
> 	at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.geode.InternalGemFireException: unexpected exception on member rs-FullRegression210400555i32xlarge-hydra-client-27(bridgegemfire1_rs-FullRegression210400555i32xlarge-hydra-client-27_28567:28567)<ec><v2>:1032
> 	at org.apache.geode.distributed.internal.ReplyException.handleCause(ReplyException.java:100)
> 	at org.apache.geode.internal.cache.tx.RemoteFetchKeysMessage$FetchKeysResponse.waitForKeys(RemoteFetchKeysMessage.java:433)
> 	at org.apache.geode.internal.cache.tx.AbstractPeerTXRegionStub.getRegionKeysForIteration(AbstractPeerTXRegionStub.java:45)
> 	... 16 more
> Caused by: org.apache.geode.internal.cache.RemoteOperationException: cache is closing
> 	at org.apache.geode.internal.cache.tx.RemoteOperationMessage.process(RemoteOperationMessage.java:241)
> 	at org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:382)
> 	at org.apache.geode.distributed.internal.DistributionMessage.schedule(DistributionMessage.java:440)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.scheduleIncomingMessage(ClusterDistributionManager.java:3247)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.handleIncomingDMsg(ClusterDistributionManager.java:2909)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.access$1500(ClusterDistributionManager.java:109)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.messageReceived(ClusterDistributionManager.java:4035)
> 	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:732)
> 	at org.apache.geode.internal.tcp.TCPConduit.messageReceived(TCPConduit.java:875)
> 	at org.apache.geode.internal.tcp.Connection.dispatchMessage(Connection.java:3965)
> 	at org.apache.geode.internal.tcp.Connection.processNIOBuffer(Connection.java:3551)
> 	at org.apache.geode.internal.tcp.Connection.runNioReader(Connection.java:1827)
> 	at org.apache.geode.internal.tcp.Connection.run(Connection.java:1688)
> 	... 1 more
> {noformat}



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