[ https://issues.apache.org/jira/browse/TINKERPOP-2988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17783474#comment-17783474 ]
ASF GitHub Bot commented on TINKERPOP-2988: ------------------------------------------- kenhuuu opened a new pull request, #2329: URL: https://github.com/apache/tinkerpop/pull/2329 Added client side checking instead of server side checking due to the difference in how graphson/graphbinary deserialization works. Also, this mostly affects websockets and not HTTP, so it is likely only drivers that are affected. The other GLVs already check that requestIds are valid UUIDs, so this PR just brings the Javascript/Python drivers to parity with the others. https://issues.apache.org/jira/browse/TINKERPOP-2988 VOTE +1 > Serialization error throws an Invalid OpProcessor exception when using > stream() API > ----------------------------------------------------------------------------------- > > Key: TINKERPOP-2988 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2988 > Project: TinkerPop > Issue Type: Improvement > Components: server > Affects Versions: 3.7.0 > Reporter: Taylor Riggan > Priority: Critical > > The following throws an > {code:java} > Invalid OpProcessor requested [null] (499){code} > exception. The cause is due to an invalid RequestId (an non-conformant UUID > is being used): > {code:java} > resp = client.stream ("g.V()", {}, { batchSize: 1, requestId: 'foo', > userAgent: 'bar', evaluationTimeout: 5000 });{code} > > The error was diagnosed using Gremlin Server 3.7.0 and seeing the following > in the server logs: > > {code:java} > [WARN] o.a.t.g.s.h.WsGremlinBinaryRequestDecoder - Serialization error while > decoding request > org.apache.tinkerpop.gremlin.driver.ser.SerializationException: > org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException: Could not > deserialize the JSON value as required. Nested exception: > org.apache.tinkerpop.shaded.jackson.databind.exc.InvalidFormatException: > Cannot deserialize value of type `java.util.UUID` from String "foo": UUID has > to be represented by standard 36-char representation > at [Source: (byte[])"{"requestId":{{{} > {"@type":"g:UUID","@value":"foo"} > {}}},"op":"eval","processor":"","args":{"gremlin":"g.V()","aliases":{{{} > {"g":"g"} > {}}},"batchSize":1,"userAgent":"bar","evaluationTimeout":5000,"bindings":{},"language":"gremlin-groovy","accept":"application/vnd.gremlin-v3.0+json""; > line: 1, column: 41]{}}} > at [Source: (byte[])"{"requestId":{{{} > {"@type":"g:UUID","@value":"foo"} > {}}},"op":"eval","processor":"","args":{"gremlin":"g.V()","aliases":{{{} > {"g":"g"} > {}}},"batchSize":1,"userAgent":"bar","evaluationTimeout":5000,"bindings":{},"language":"gremlin-groovy","accept":"application/vnd.gremlin-v3.0+json""; > line: 1, column: 41] (through reference chain: > java.util.LinkedHashMap["requestId"]){}}} > at > org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.deserializeRequest(AbstractGraphSONMessageSerializerV2d0.java:124) > at > org.apache.tinkerpop.gremlin.server.handler.WsGremlinBinaryRequestDecoder.decode(WsGremlinBinaryRequestDecoder.java:77) > .... > {code} > > A better client side error message is needed in order to provide the user > with guidance on how to fix the issue. `Invalid OpProcessor` is too > ambiguous. -- This message was sent by Atlassian Jira (v8.20.10#820010)