dschneider-pivotal commented on a change in pull request #6561:
URL: https://github.com/apache/geode/pull/6561#discussion_r658169307



##########
File path: 
geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java
##########
@@ -120,7 +122,16 @@ protected Object processResponse(Message msg) throws 
Exception {
           queryResult = resultPart.getObject();
         } catch (Exception e) {
           String s = "While deserializing " + getOpName() + " result";
-          exceptionRef[0] = new SerializationException(s, e);
+          if (e instanceof PdxSerializationException) {

Review comment:
       The conversion of PdxSerializationException to an IOException while 
reading a query response seems like a hack to fix a problem that we do not yet 
understand. What do you think of it being disabled by default and only enabled 
if a system property "gemfire.enableQueryRetryOnPdxSerializationException" is 
true? This would give the current customer a workaround if they set the new 
system property. 
   
   You should also document that this workaround will only work if the client 
is configured to connect to more than one cache server AND the pool's 
"retry-attempts" is -1 (the default which means try each server) or > 0. It is 
possible that if you closed the current connection and got a new connection to 
the same server and retried the query to it that it would also workaround this 
issue and it would not have the limitations of needing multiple servers and 
would not depend on the retry-attempts configuration.
   
   Since we have not been able to reproduce this issue can we get the customer 
to test this workaround in their environment to confirm it will solve their 
issue?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to