[ 
https://issues.apache.org/jira/browse/TINKERPOP-1811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259791#comment-16259791
 ] 

ASF GitHub Bot commented on TINKERPOP-1811:
-------------------------------------------

GitHub user spmallette opened a pull request:

    https://github.com/apache/tinkerpop/pull/753

    TINKERPOP-1811 Fixed bytecode deserialization error messaging

    As the original issue description suggests the error message wasn't very 
helpful. Seems there was a mistype in the log message that prevented a better 
output and also some error handling that wasn't quite being dealt with properly.
    
    Error now presents as:
    
    ```text
    gremlin> bytecode = g.V().asAdmin().bytecode
    ==>[[], [V()]]
    gremlin> bytecode.addStep("broken")
    gremlin> bytecode
    ==>[[], [V(), broken()]]
    gremlin> conn.submit(bytecode).next()
    org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Could not 
locate method: DefaultGraphTraversal.broken([])
    Type ':help' or ':h' for help.
    Display stack trace? [yN]n
    ```
    
    On the server you now get this:
    
    ```text
    [ERROR] TraversalOpProcessor - Could not deserialize the Traversal instance
    java.lang.IllegalStateException: Could not locate method: 
DefaultGraphTraversal.broken([])
        at 
org.apache.tinkerpop.gremlin.jsr223.JavaTranslator.invokeMethod(JavaTranslator.java:180)
        at 
org.apache.tinkerpop.gremlin.jsr223.JavaTranslator.translate(JavaTranslator.java:91)
        at 
org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor.iterateBytecodeTraversal(TraversalOpProcessor.java:367)
    ```
    
    builds with `mvn clean install && mvn verify -pl gremlin-server 
-DskipIntegrationTests=false`
    
    VOTE +1

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/tinkerpop TINKERPOP-1811

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tinkerpop/pull/753.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #753
    
----
commit 95a6ea3f56db83449b62475045d08fc9452467e0
Author: Stephen Mallette <[email protected]>
Date:   2017-11-20T20:26:53Z

    TINKERPOP-1811 Fixed bytecode deserialization error messaging
    
    As the original issue description suggests the error message wasn't very 
helpful. Seems there was a mistype in the log message that prevented a better 
output and also some error handling that wasn't quite being dealt with properly.

----


> Improve error reporting for serialization errors between gremlin-python and 
> gremlin-server
> ------------------------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1811
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1811
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: python, server
>    Affects Versions: 3.2.6
>            Reporter: Hugo Arts
>            Priority: Minor
>
> We ran into an issue while attempting to add a PartitionStrategy to our 
> traversals. This is a small example of a traversal I tried:
> {code:none}
> remote = DriverRemoteConnection('ws://localhost:8182/gremlin', 
> 'DSE_GRAPH_QUICKSTART.g')
> strategy = PartitionStrategy('community_id', '2097442560', 2097442560)
> g = Graph().traversal().withRemote(remote).withStrategies(strategy)
> print(g.V().toList())
> {code}
> The third argument of PartitionStrategy should be a list. However, the 
> traversal strategies in gremlin-python do not do any kind of argument/type 
> checking, and any mistake you make results in the following error from 
> gremlin server:
> {noformat}
> ERROR [gremlin-server-worker-1] 2017-10-25 10:15:53,285 GREMLIN 
> TraversalOpProcessor.java:365 - Could not deserialize the Traversal instance
> {noformat}
> I've omitted the [full 
> traceback|https://gist.github.com/anonymous/2ad6541d0169256afb1a23fbdc376009] 
> for brevity. There is not much indication as to what has gone wrong. 
> gremlin-python gives this error:
> {noformat}
> gremlin_python.driver.protocol.GremlinServerError: 599: None
> {noformat}
> Which is also unhelpful. We were eventually able to figure out what we were 
> doing wrong, but it would be very nice to have either some input validation 
> on the gremlin-python side, or have gremlin-server be more specific about the 
> nature of the deserialisation error (or both).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to