[ 
https://issues.apache.org/jira/browse/TINKERPOP-3076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17889893#comment-17889893
 ] 

ASF GitHub Bot commented on TINKERPOP-3076:
-------------------------------------------

Cole-Greer opened a new pull request, #2834:
URL: https://github.com/apache/tinkerpop/pull/2834

   Gorilla has an implicit frame size limit imposed by WriteBufferSize. 
Requests which exceed this limit cannot be parsed by gremlin server and 
currently lead to cryptic errors in the server. This PR simply adds a client 
side check to throw a more descriptive error to the user. The resulting 
behaviour is very similar to how `maxContentLength` functions in the java 
driver.
   
   VOTE +1




> Incorrect handling of large requests in Go GLV
> ----------------------------------------------
>
>                 Key: TINKERPOP-3076
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3076
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: go
>    Affects Versions: 3.6.7, 3.7.2
>            Reporter: Valentyn Kahamlyk
>            Priority: Blocker
>
> When trying to send a request longer than about a megabyte, go GLV does not 
> work correctly, possibly truncates data.
> Simple reproducer 
> {code:go}
> func main() {
>     driverRemoteConnection, err := 
> gremlingo.NewDriverRemoteConnection("ws://localhost:8182/gremlin")
>     if err != nil {
>        fmt.Println(err)
>        return
>     }
>     defer driverRemoteConnection.Close()
>     g := gremlingo.Traversal_().WithRemote(driverRemoteConnection)
>     const count = 1100
>     var ids [count]string
>     const idLength = 1000
>     result := make([]byte, idLength)
>     for i := 0; i < idLength; i++ {
>        result[i] = 65
>     }
>     id := string(result)
>     for i := 0; i < count; i++ {
>        ids[i] = id
>     }
>     r, err := g.V(ids).Count().ToList()
>     if err != nil {
>        fmt.Println("err: ", err)
>        return
>     }
>     fmt.Println("found: ", r[0].GetString()) 
> }{code}
> with `count = 1000` it works as expected.
> Python GLV works as expected with same request.
> Error logged in Gremlin Server 
> {code:java}
> io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: 
> readerIndex(1048338) + length(1000) exceeds writerIndex(1048543): 
> PooledUnsafeDirectByteBuf(ridx: 1048338, widx: 1048543, cap: 1048576){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to