Valentyn Kahamlyk created TINKERPOP-3076: --------------------------------------------
Summary: Incorrect handling of large requests in Go GLV Key: TINKERPOP-3076 URL: https://issues.apache.org/jira/browse/TINKERPOP-3076 Project: TinkerPop Issue Type: Improvement Components: go Affects Versions: 3.7.2, 3.6.7 Reporter: Valentyn Kahamlyk 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)