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)