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