I created GEODE-5173 for this issue.

Thanks,
-Dan

On Wed, May 2, 2018 at 12:17 PM, Dan Smith <[email protected]> wrote:

> Hi Pieter,
>
> I was able to reproduce this problem. It looks like it is an issue with
> doing a get inside of a transaction along with a replicated region using
> persistence and overflow. The value is still on disk, and for whatever
> reason if you do the get inside of a transaction it is returning you this
> bogus NOT_AVAILABLE token instead of reading the value off disk.
>
> I'll create a JIRA and attach my test. In the meantime, you could do the
> get outside of a transaction, or you could change your region to not use
> overflow. If you try changing the region to not use overflow, I think
> you'll also have to set the system property gemfire.disk.recoverValuesSync
> to true to make sure that in all cases you never have to read from disk.
>
> Thanks,
> -Dan
>
> On Mon, Apr 30, 2018 at 3:47 AM, Pieter van Zyl <[email protected]
> > wrote:
>
>> Good day.
>>
>> I am constantly seeing this error below when we stop and start Geode
>> server after a data import.
>>
>> When the client connects the second time after the restart we get 
>> NotSerializableException:
>> org.apache.geode.internal.cache.Token$NotAvailable
>>
>> Any ideas why we are getting this error or why it would state
>> "NotAvailable"?
>>
>> *Versions:*
>>
>> compile 'org.springframework.data:spring-data-geode:2.1.0.M2'
>> compile group: 'org.apache.geode', name: 'geode-core', version: '1.5.0'
>>
>> Trying to access this region on startup:
>>
>>
>>
>>
>>
>> *<gfe:replicated-region id="ClassID-ClassName-LookUp"
>>    disk-store-ref="tauDiskStore"                       persistent="true">
>>   <gfe:eviction type="HEAP_PERCENTAGE"
>> action="OVERFLOW_TO_DISK"/></gfe:replicated-region>*
>>
>> *Server config:*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *<util:properties id="gemfire-props"><prop
>> key="log-level">info</prop><prop key="locators">pvz-dell[10334]</prop><prop
>> key="start-locator">pvz-dell[10334]</prop><prop
>> key="mcast-port">0</prop><prop key="http-service-port">0</prop><prop
>> key="jmx-manager">true</prop><prop key="jmx-manager-port">1099</prop><prop
>> key="jmx-manager-start">true</prop></util:properties>*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *<gfe:cache properties-ref="gemfire-props"
>> pdx-serializer-ref="pdxSerializer"
>> pdx-persistent="true"pdx-disk-store="pdx-disk-store" /><gfe:cache-server
>> port="40404" max-connections="300" socket-buffer-size="65536"
>> max-threads="200"/><gfe:transaction-manager id="txManager"/><bean
>> id="pdxSerializer"
>> class="org.rdb.geode.mapping.RDBGeodeSerializer"> <constructor-arg
>> value="org.rdb.*,net.lautus.*"/></bean>*
>>
>> The server seems to be up and running
>> *Cache server connection listener bound to address
>> pvz-dell-/0:0:0:0:0:0:0:0:40404 with backlog 1,000.*
>>
>> *[info 2018/04/30 12:32:30.483 SAST <main> tid=0x1]
>> ClientHealthMonitorThread maximum allowed time between pings: 60,000*
>>
>> *[warn 2018/04/30 12:32:30.485 SAST <main> tid=0x1] Handshaker max Pool
>> size: 4*
>>
>> *[info 2018/04/30 12:32:30.486 SAST <Cache Server Selector
>> /0:0:0:0:0:0:0:0:40404 local port: 40404> tid=0x4f] SELECTOR enabled*
>>
>> *[info 2018/04/30 12:32:30.491 SAST <main> tid=0x1] CacheServer
>> Configuration:   port=40404 max-connections=300 max-threads=200
>> notify-by-subscription=true socket-buffer-size=65536
>> maximum-time-between-pings=60000 maximum-message-count=230000
>> message-time-to-live=180 eviction-policy=none capacity=1 overflow
>> directory=. groups=[] loadProbe=ConnectionCountProbe loadPollInterval=5000
>> tcpNoDelay=true*
>>
>> *server running on port 40404*
>> *Press <Enter> to terminate the server*
>>
>>
>> Exception in thread "main" 
>> org.apache.geode.cache.client.ServerOperationException:
>> remote server on pvz-dell(23128:loner):38042:2edf1c16:
>> org.apache.geode.SerializationException: failed serializing object
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.handle
>> Exception(OpExecutorImpl.java:669)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.handle
>> Exception(OpExecutorImpl.java:742)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.handle
>> Exception(OpExecutorImpl.java:611)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.execut
>> eOnServer(OpExecutorImpl.java:373)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.execut
>> eWithServerAffinity(OpExecutorImpl.java:220)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.execut
>> e(OpExecutorImpl.java:129)
>> at org.apache.geode.cache.client.internal.OpExecutorImpl.execut
>> e(OpExecutorImpl.java:116)
>> at org.apache.geode.cache.client.internal.PoolImpl.execute(Pool
>> Impl.java:774)
>> 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.findOb
>> ject(ClientTXRegionStub.java:72)
>> at org.apache.geode.internal.cache.TXStateStub.findObject(TXSta
>> teStub.java:453)
>> at org.apache.geode.internal.cache.TXStateProxyImpl.findObject(
>> TXStateProxyImpl.java:496)
>> at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1366)
>> at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1300)
>> at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1285)
>> at org.apache.geode.internal.cache.AbstractRegion.get(AbstractR
>> egion.java:320)
>> ......
>> Caused by: org.apache.geode.SerializationException: failed serializing
>> object
>> at org.apache.geode.internal.cache.tier.sockets.Message.seriali
>> zeAndAddPart(Message.java:399)
>> at org.apache.geode.internal.cache.tier.sockets.Message.addPart
>> InAnyForm(Message.java:360)
>> 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:157)
>> at org.apache.geode.internal.cache.tier.sockets.ServerConnectio
>> n.doNormalMsg(ServerConnection.java:797)
>> at org.apache.geode.internal.cache.tier.sockets.LegacyServerCon
>> nection.doOneMessage(LegacyServerConnection.java:85)
>> at org.apache.geode.internal.cache.tier.sockets.ServerConnectio
>> n.run(ServerConnection.java:1148)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>> Executor.java:1149)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>> lExecutor.java:624)
>> at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$4$
>> 1.run(AcceptorImpl.java:641)
>> at java.lang.Thread.run(Thread.java:748)
>> *Caused by: java.io <http://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.writeSerial
>> izableObject(InternalDataSerializer.java:2341)
>> at org.apache.geode.internal.InternalDataSerializer.basicWriteO
>> bject(InternalDataSerializer.java:2216)
>> at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2936)
>> at org.apache.geode.internal.util.BlobHelper.serializeTo(BlobHe
>> lper.java:66)
>> at org.apache.geode.internal.cache.tier.sockets.Message.seriali
>> zeAndAddPart(Message.java:397)
>>
>>
>> Kindly
>> Pieter
>>
>
>

Reply via email to