You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "nabarun (JIRA)" <ji...@apache.org> on 2018/10/03 21:38:39 UTC

[jira] [Closed] (GEODE-5646) Client throws ToDataException when locator is shutting down

     [ https://issues.apache.org/jira/browse/GEODE-5646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

nabarun closed GEODE-5646.
--------------------------

> Client throws ToDataException when locator is shutting down
> -----------------------------------------------------------
>
>                 Key: GEODE-5646
>                 URL: https://issues.apache.org/jira/browse/GEODE-5646
>             Project: Geode
>          Issue Type: Bug
>          Components: client/server
>            Reporter: Bruce Schuchardt
>            Assignee: Bruce Schuchardt
>            Priority: Major
>             Fix For: 1.7.0
>
>
> This hasn't been seen in Geode but in an older version of Pivotal GemFire.  The code in question hasn't changed so we ought to fix it.
> {noformat}
> ERROR util.TestException: doEntryOperations caught Exception com.gemstone.gemfire.ToDataException: toData failed on DataSerializable class com.gemstone.gemfire.distributed.internal.ServerLocation
> 	at com.gemstone.gemfire.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2424)
> 	at com.gemstone.gemfire.cache.client.internal.locator.SerializationHelper.writeServerLocations(SerializationHelper.java:39)
> 	at com.gemstone.gemfire.cache.client.internal.locator.SerializationHelper.writeServerLocationSet(SerializationHelper.java:75)
> 	at com.gemstone.gemfire.cache.client.internal.locator.ClientConnectionRequest.toData(ClientConnectionRequest.java:44)
> 	at com.gemstone.gemfire.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2411)
> 	at com.gemstone.gemfire.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1382)
> 	at com.gemstone.gemfire.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2156)
> 	at com.gemstone.gemfire.DataSerializer.writeObject(DataSerializer.java:3181)
> 	at com.gemstone.org.jgroups.stack.tcpserver.TcpClient.requestToServer(TcpClient.java:115)
> 	at com.gemstone.org.jgroups.stack.tcpserver.TcpClient.requestToServer(TcpClient.java:78)
> 	at com.gemstone.gemfire.cache.client.internal.AutoConnectionSourceImpl.queryOneLocator(AutoConnectionSourceImpl.java:188)
> 	at com.gemstone.gemfire.cache.client.internal.AutoConnectionSourceImpl.queryLocators(AutoConnectionSourceImpl.java:220)
> 	at com.gemstone.gemfire.cache.client.internal.AutoConnectionSourceImpl.findServer(AutoConnectionSourceImpl.java:132)
> 	at com.gemstone.gemfire.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:227)
> 	at com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.exchangeConnection(ConnectionManagerImpl.java:421)
> 	at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:173)
> 	at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:115)
> 	at com.gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:702)
> 	at com.gemstone.gemfire.cache.client.internal.KeySetOp.execute(KeySetOp.java:38)
> 	at com.gemstone.gemfire.cache.client.internal.ServerRegionProxy.keySet(ServerRegionProxy.java:348)
> 	at com.gemstone.gemfire.internal.cache.LocalRegion.keySetOnServer(LocalRegion.java:4159)
> {noformat}
> The client is trying to serialize ServerLocation objects and send them to a locator. AutoConnectionSourceImpl.queryOneLocator() has code to handle IOException and report the locator as being down but since ServerLocation isn't a DataSerializableFixedID instance the serialization code throws a ToDataException instead of an IOException. Adding ToDataException handling to queryOneLocator() should fix the problem.



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