Dan Smith created GEODE-5173: -------------------------------- Summary: Transactional get from a client on a REPLICATE_HEAP_LRU region throws NotSerializableException Key: GEODE-5173 URL: https://issues.apache.org/jira/browse/GEODE-5173 Project: Geode Issue Type: Bug Components: persistence, transactions Reporter: Dan Smith
Doing a get from a client within a transaction on a region with persistence and overflow results in the below exception. It looks like this issue has to do with some code returning a Token.NOT_AVAILABLE rather than reading the value from disk if the get is performed within a transaction. Without using transactions, this same use case works: {noformat} Caused by: org.apache.geode.cache.client.ServerOperationException: remote server on 10.1.10.126(15995:loner):34188:40be7322: org.apache.geode.SerializationException: failed serializing object at org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:680) at org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:739) at org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:622) at org.apache.geode.cache.client.internal.OpExecutorImpl.executeOnServer(OpExecutorImpl.java:384) at org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithServerAffinity(OpExecutorImpl.java:231) at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:140) at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:127) at org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:782) at org.apache.geode.cache.client.internal.GetOp.execute(GetOp.java:91) at org.apache.geode.cache.client.internal.ServerRegionProxy.get(ServerRegionProxy.java:113) at org.apache.geode.internal.cache.tx.ClientTXRegionStub.findObject(ClientTXRegionStub.java:72) at org.apache.geode.internal.cache.TXStateStub.findObject(TXStateStub.java:472) at org.apache.geode.internal.cache.TXStateProxyImpl.findObject(TXStateProxyImpl.java:536) at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1400) at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1334) at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1319) at org.apache.geode.internal.cache.AbstractRegion.get(AbstractRegion.java:408) at org.apache.geode.internal.cache.ClientPersistentTransactionDUnitTest.lambda$test$2c6907a2$1(ClientPersistentTransactionDUnitTest.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at hydra.MethExecutor.executeObject(MethExecutor.java:244) at org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:361) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.geode.SerializationException: failed serializing object at org.apache.geode.internal.cache.tier.sockets.Message.serializeAndAddPart(Message.java:401) at org.apache.geode.internal.cache.tier.sockets.Message.addPartInAnyForm(Message.java:362) at org.apache.geode.internal.cache.tier.sockets.command.Get70.writeResponse(Get70.java:424) at org.apache.geode.internal.cache.tier.sockets.command.Get70.cmdExecute(Get70.java:211) at org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:158) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:869) at org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:77) 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) ... 1 more Caused by: java.io.NotSerializableException: org.apache.geode.internal.cache.Token$NotAvailable at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at org.apache.geode.internal.InternalDataSerializer.writeSerializableObject(InternalDataSerializer.java:2386) at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2260) at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2953) at org.apache.geode.internal.util.BlobHelper.serializeTo(BlobHelper.java:66) at org.apache.geode.internal.cache.tier.sockets.Message.serializeAndAddPart(Message.java:399) ... 11 more{noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)