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

Yang Xia updated TINKERPOP-3076:
--------------------------------
    Priority: Blocker  (was: Critical)

> 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