You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Blake Bender (JIRA)" <ji...@apache.org> on 2019/04/23 19:44:00 UTC

[jira] [Created] (GEODE-6699) Server returns incorrect chunked response in the presence of an object it can't deserializa

Blake Bender created GEODE-6699:
-----------------------------------

             Summary: Server returns incorrect chunked response in the presence of an object it can't deserializa
                 Key: GEODE-6699
                 URL: https://issues.apache.org/jira/browse/GEODE-6699
             Project: Geode
          Issue Type: Bug
          Components: core
            Reporter: Blake Bender


A Native Client customer reported a crash when running code like this (See GEODE-6624), and when the NC crash was fixed we discovered that the request timed out, rather than throwing an exception right away as expected.  What happens is more-or-less as follows:
 * start a locator and two servers
 * deploy a function to Geode that returns an instance of a class that the server can't deserialize because it doesn't have a default constructor
 * Run an app that uses the native client to execute the function on a region

Expected result:
 * Server returns a chunked message containing one value, with the type field set to DataSerializable and the subtype to 'Class', followed by the string name of the class and the buffer resulting from a call to toData on said instance
 * Native client reads the result and immediately throws a FunctionExecutionException

Actual result:
 * Server returns a chunked message containing one value, with the type field set to DataSerializable and the subtype to 'Class', followed by the string name of the class and the buffer resulting from a call to toData on said instance, BUT... the 'lastChunk' field of the reply is set to 0, i.e. this is not the last chunk
 * Native Client chunk processor sees that reply is not the last chunk, and asks the server for the next chunk
 * Server does not return any more chunks, and client request times out
 * Native Client throws NotConnectedException in response to the timed-out request

Repro steps:
 * Build Native Client
 * Run the test case FunctionReturnsObjectWhichCantBeDeserializedOnServer in the FunctionExecutionTests suite

 



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