[ https://issues.apache.org/jira/browse/TINKERPOP-3040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17874884#comment-17874884 ]
Clément de Groc commented on TINKERPOP-3040: -------------------------------------------- I'm not too familiar with this part of the codebase and would appreciate any insights (cc [~kenhuuu], [~ryn1]). AFAIU, remote scripts are evaluated twice since TinkerPop 3.7.1: # First locally [here|https://github.com/apache/tinkerpop/blob/3.7-dev/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy#L118] - to handle multiline scripts IIUC (https://issues.apache.org/jira/browse/TINKERPOP-2999, [https://github.com/apache/tinkerpop/pull/2297]). # Then remotely [here|https://github.com/apache/tinkerpop/blob/3.7-dev/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy#L147], if the local execution succeeded or raised a {{MissingPropertyException}} (https://issues.apache.org/jira/browse/TINKERPOP-3013, [https://github.com/apache/tinkerpop/pull/2341]). In the two errors shared above, I think the script will throw a {{RuntimeException}} locally, causing remote execution to be skipped. Is there a way to avoid the local evaluation while preserving multiline scripts? > Remote Console won't send queries that cause exceptions locally > --------------------------------------------------------------- > > Key: TINKERPOP-3040 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3040 > Project: TinkerPop > Issue Type: Bug > Components: console > Affects Versions: 3.7.0 > Reporter: Ken Hu > Priority: Critical > > From: https://groups.google.com/g/gremlin-users/c/U2gIxmRcrI8/m/x12banhdAAAJ > It appears that if an exception occurs when the remote console is executing a > command locally then it won't send that query to the server. > > Example: > {code:java} > \,,,/ > (o o) > -----oOOo-(3)-oOOo----- > plugin activated: tinkerpop.server > plugin activated: tinkerpop.utilities > plugin activated: tinkerpop.tinkergraph > plugin activated: janusgraph.imports > gremlin> :remote connect tinkerpop.server conf/remote.yaml > ==>Configured localhost/127.0.0.1:45940 > gremlin> :remote console > ==>All scripts will now be sent to Gremlin Server - > [localhost/127.0.0.1:45940] - type ':remote console' to return to local mode > gremlin> JanusGraphFactory.getGraphNames() > Gremlin Server must be configured to use the JanusGraphManager. > Type ':help' or ':h' for help. > Display stack trace? [yN]y > java.lang.NullPointerException: Gremlin Server must be configured to use the > JanusGraphManager. > at > com.google.common.base.Preconditions.checkNotNull(Preconditions.java:921) > at > org.janusgraph.core.JanusGraphFactory.getGraphNames(JanusGraphFactory.java:187) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at groovysh_evaluate.run(groovysh_evaluate:3) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.selectMethod(IndyInterface.java:355) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at > org.apache.groovy.groovysh.Interpreter.evaluate(Interpreter.groovy:82) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at > org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:118) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at org.apache.groovy.groovysh.Shell.leftShift(Shell.groovy:121) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at org.apache.groovy.groovysh.ShellRunner.work(ShellRunner.groovy:93) > at > org.apache.groovy.groovysh.InteractiveShellRunner.work(InteractiveShellRunner.groovy:124) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at org.apache.groovy.groovysh.ShellRunner.run(ShellRunner.groovy:57) > at > org.apache.groovy.groovysh.InteractiveShellRunner.run(InteractiveShellRunner.groovy:96) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at > org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:175) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321) > at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:574) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)