Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2988

Serialization error throws an Invalid OpProcessor exception when using stream() API

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 3.7.0
    • 3.6.6, 3.7.1, 4.0.0
    • server
    • None

    Description

      The following throws an 

      Invalid OpProcessor requested [null] (499)

       exception.  The cause is due to an invalid RequestId (an non-conformant UUID is being used):

      resp = client.stream ("g.V()", {}, { batchSize: 1, requestId: 'foo', userAgent: 'bar', evaluationTimeout: 5000 });

       

      The error was diagnosed using Gremlin Server 3.7.0 and seeing the following in the server logs:

       

      [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)
      ....
      

       

      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.

      Attachments

        Issue Links

          Activity

            People

              kenhuuu Ken Hu
              Riggan Taylor Riggan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: