[ 
https://issues.apache.org/jira/browse/TINKERPOP3-817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Geoff Reedy updated TINKERPOP3-817:
-----------------------------------
    Description: 
Serialization of large responses in Gryo 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

  was:
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


> 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 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)

Reply via email to