[
https://issues.apache.org/jira/browse/TINKERPOP-3076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890259#comment-17890259
]
ASF GitHub Bot commented on TINKERPOP-3076:
-------------------------------------------
vkagamlyk commented on PR #2834:
URL: https://github.com/apache/tinkerpop/pull/2834#issuecomment-2418039153
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)