2016-11-05 2 views
1

私は、グラフデータベースTitanを使用するプロジェクトに取り組んでいます。クエリはPythonからGremlinを通してGroovyスクリプトの形式で送られます。私はTitan/Gremlinログにアクセスできますが、ログは構文エラー(およびその他のエラー)に関する情報をほとんど提供しません。スクリプトに何か問題がある場合は、ほとんどの場合、構文エラーが含まれているという通知が表示されます。間違いの行/列に関する情報のTitanのGroovyスクリプトでの構文エラーのログ

WARN org.apache.tinkerpop.gremlin.server.handler.HttpGremlinEndpointHandler - Invalid request - responding with 500 Internal Server Error and Error encountered evaluating script: 

graph.traversal().V(4096).hasLabel('slot_type').has('name', 'slot_DefTerm' 

不在(及びエラーの説明:私はメッセージを取得

graph.traversal().V(4096).hasLabel('slot_type').has('name', 'slot_DefTerm' 

:例では(私は目的にブレース不在を閉じる左) )は、特に大きなスクリプトや洗練されたエラーの非常に遅く痛みを伴うデバッグにつながります。

私はgremlinログでもっと有益な情報を得たいと考えています。 Groovyインタプリタからの構文エラーメッセージのロギング。この方法でより多くの情報をロギングするようにTitanを設定するにはどうしたらいいですか?

答えて

1

古いバージョンのGremlin ServerをTitanと一緒に使用しているのかどうかはわかりませんが、TinkerPop 3.2.3では、サーバログだけでなく出力でかなり頑強なエラーが戻ってきます。

サーバーの出力もかなり詳細であることを
$ curl "http://localhost:8182?gremlin=100/0" 
{"message":"Division by zero","Exception-Class":"java.lang.ArithmeticException"} 
$ curl "http://localhost:8182?gremlin=x=100\nx/0" 
{"message":"startup failed:\nScript4.groovy: 1: unexpected char: '\\' @ line 1, column 6.\n x=100\\nx/0\n  ^\n\n1 error\n","Exception-Class":"org.codehaus.groovy.control.MultipleCompilationErrorsException"} 

注:

[WARN] HttpGremlinEndpointHandler - Invalid request - responding with 500 Internal Server Error and startup failed: 
Script4.groovy: 1: unexpected char: '\' @ line 1, column 6. 
    x=100\nx/0 
     ^

1 error 

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script4.groovy: 1: unexpected char: '\' @ line 1, column 6. 
    x=100\nx/0 
     ^

1 error 

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) 
    at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:150) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:120) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:132) 
    at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:360) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:111) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:237) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:167) 
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546) 
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254) 
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:211) 
    at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.getScriptClass(GremlinGroovyScriptEngine.java:527) 
    at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:446) 
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) 
    at org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines.eval(ScriptEngines.java:119) 
    at org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$2(GremlinExecutor.java:287) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

私はこの問題は、タイタン1.0に同梱され、長い以来、大幅に改善されているTinkerPopの以前のバージョンで問題があったかもしれないと思います。

+0

ありがとうございます!私はドッカーコンテナーをタイタンで更新します。 –

関連する問題