Details
-
Bug
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
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.