You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Geoff Reedy (JIRA)" <ji...@apache.org> on 2015/08/28 16:50:46 UTC

[jira] [Created] (TINKERPOP3-817) Gryo serialization of large responses fails and causes protocol desync

Geoff Reedy created TINKERPOP3-817:
--------------------------------------

             Summary: Gryo serialization of large responses fails and causes protocol desync
                 Key: TINKERPOP3-817
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-817
             Project: TinkerPop 3
          Issue Type: Bug
          Components: driver
    Affects Versions: 3.0.0-incubating
            Reporter: Geoff Reedy
            Assignee: stephen mallette


Serialization of large responses in Gryo (check if happens in both serialization modes) is not done correctly. It looks like there is some sort of framing or fragmentation issue. I haven't tracked it down the the root cause. It can be reproduced by sending the query {{"x" * 4066}} whereas {{"x" * 4065}} works.

With debug logging turned on, the server indicates that it is writing the correct response message but when it is serialized it comes out only as the single byte 0x01.

The error on the client is, in this case, 
bq. io.netty.handler.codec.DecoderException: org.apache.tinkerpop.gremlin.driver.ser.SerializationException: org.apache.tinkerpop.shaded.kryo.KryoException: Buffer too small: capacity: 1, required: 8

but different response sizes give different errors, for example, {{"x" * 10000}} gives 

bq. io.netty.handler.codec.DecoderException: org.apache.tinkerpop.gremlin.driver.ser.SerializationException: java.lang.IndexOutOfBoundsException: Index: 118, Size: 0



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)