Compact Serialization: UnknownSchemaException when using Paging Predicates on getEntriesAsync, etc. #868
Labels
Priority: High
High Priority.
Source: Community
Originated from the Community.
State: Review
Please review this PR!
I'm back with another observation on compact serialization. The issue I'm seeing is very similar to this issue (#772). I know that a fix was implemented at the time this issue was closed, however I'm observing a similar problem. I haven't had time to dive into the Hazelcast C# client code this time to identify exactly where the issue is, however I can provide the steps I used to replicate the issue as well as what I've done as a workaround.
If I attempt to connect to a running Hazelcast instance that already has data loaded into a map and run a getEntriesAsync(predicate) or getValuesAsync(predicate) method call where the predicate uses a Paging Predicate (Predicates.Page) as its outer predicate I get an UnknownSchemaException. If I make these same method calls without a predicate (no parameter to the methods) or a SQL predicate that isn't wrapped in a paging predicate the data is retrieved with no issues.
As a workaround (aside from not using the paging predicate), I can call a getKeysAsync(), take one key from the returned list, call getAsync() with that key, and I can then call the getEntriesAsync/getValuesAsync with predicates with no issues.
What I suspect is that when making the method calls containing paging predicates there is some issue with requesting the schema from the Hazelcast cluster at the time the data is being deserialized. The calls which use no predicates, no paging predicate or use a single key seem to be fetching the schema properly first before deserializing and thus by calling these methods first it primes the schema on the C# client, allowing future calls using paging predicates to function as expected.
The text was updated successfully, but these errors were encountered: