Bruce Schuchardt created GEODE-5283: ---------------------------------------
Summary: 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 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)