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

Dan Smith updated GEODE-6271:
-----------------------------
    Description: 
If 
* A client is connected through two different pools to two different geode 
clusters 
* The clusters are not connected by WAN
* The same pdx serialized class is used in both clusters
* and the client puts into one or more clusters

Then it is possible that the client put will result in a value in one of the 
clusters that will fail deserialization with "java.lang.IllegalStateException: 
Unknown pdx type." This is because the client will use a type id that is 
generated in one cluster but is not known to the other cluster.

I've attached a test case that replicates this scenario. 

The client used to have some logic that copied PDX types from one cluster to 
another in some cases. That logic was removed with 
cf0b378429b643513366ce90226e4f6472056c7b. However, other cases were still not 
copying the type. In the attached test case, one of the tests will pass if the 
changes from cf0b3784 are reverted, but the others still fail.

  was:
If 
* A client is connected through two different pools to two different geode 
clusters 
* The clusters are not connected by WAN
* The same pdx serialized class is used in both clusters
* and the client puts into one more more clusters

Then it is possible that the client put will result in a value in on of the 
clusters that will fail deserialization with "java.lang.IllegalStateException: 
Unknown pdx type." because the client will use a type id that is generated in 
one cluster but is not known to the other cluster.

I've attached a test case that replicates this scenario. 

The client used to have some logic that copied PDX types from one cluster to 
another in some cases. That logic was removed with 
cf0b378429b643513366ce90226e4f6472056c7b. However, other cases were still not 
copying the type. In the attached test case, one of the tests will pass if the 
changes from cf0b3784 are reverted, but the others still fail.


> Unknown pdx type error occurs when a single client is connected to two 
> separate clusters
> ----------------------------------------------------------------------------------------
>
>                 Key: GEODE-6271
>                 URL: https://issues.apache.org/jira/browse/GEODE-6271
>             Project: Geode
>          Issue Type: Bug
>          Components: serialization
>            Reporter: Dan Smith
>            Priority: Major
>         Attachments: 
> 0001-GEODE-6271-Test-of-client-connected-to-multiple-clus.patch
>
>
> If 
> * A client is connected through two different pools to two different geode 
> clusters 
> * The clusters are not connected by WAN
> * The same pdx serialized class is used in both clusters
> * and the client puts into one or more clusters
> Then it is possible that the client put will result in a value in one of the 
> clusters that will fail deserialization with 
> "java.lang.IllegalStateException: Unknown pdx type." This is because the 
> client will use a type id that is generated in one cluster but is not known 
> to the other cluster.
> I've attached a test case that replicates this scenario. 
> The client used to have some logic that copied PDX types from one cluster to 
> another in some cases. That logic was removed with 
> cf0b378429b643513366ce90226e4f6472056c7b. However, other cases were still not 
> copying the type. In the attached test case, one of the tests will pass if 
> the changes from cf0b3784 are reverted, but the others still fail.



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

Reply via email to