[ https://issues.apache.org/jira/browse/GEODE-5173?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Shu resolved GEODE-5173. ----------------------------- Resolution: Fixed > 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 > Affects Versions: 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.2.1, 1.4.0, 1.5.0, 1.6.0 > Reporter: Dan Smith > Assignee: Eric Shu > Priority: Major > Labels: pull-request-available > Fix For: 1.7.0 > > Time Spent: 1h 10m > Remaining Estimate: 0h > > 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)