Skip to content

Stackoverflow on long cypher query with long array #1792

@ExtReMLapin

Description

@ExtReMLapin

Hello it's me again

ArcadeDB Version:

ArcadeDB Server v24.6.1 (build fbc1c77c7e1c52197abdd8661e5b34749babf3d6/1721708610769/main)

OS and JDK Version:

unning on Linux 6.5.0-41-generic - OpenJDK 64-Bit Server VM 11.0.24

Expected behavior

working query

Actual behavior

stack overflow

(too long, truncated=

<ArcadeDB_0> Error on command execution (PostQueryHandler)
com.arcadedb.exception.CommandParsingException: Error on executing Cypher query
        at com.arcadedb.cypher.query.CypherQueryEngine.command(CypherQueryEngine.java:80)
        at com.arcadedb.cypher.query.CypherQueryEngine.query(CypherQueryEngine.java:64)
        at com.arcadedb.database.LocalDatabase.query(LocalDatabase.java:1378)
        at com.arcadedb.server.ServerDatabase.query(ServerDatabase.java:494)
        at com.arcadedb.server.http.handler.PostQueryHandler.executeCommand(PostQueryHandler.java:38)
        at com.arcadedb.server.http.handler.PostCommandHandler.execute(PostCommandHandler.java:113)
        at com.arcadedb.server.http.handler.DatabaseAbstractHandler.execute(DatabaseAbstractHandler.java:100)
        at com.arcadedb.server.http.handler.AbstractServerHttpHandler.handleRequest(AbstractServerHttpHandler.java:127)
        at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
        at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
        at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.arcadedb.exception.CommandExecutionException: Error on executing command
        at com.arcadedb.gremlin.ArcadeGremlin.execute(ArcadeGremlin.java:139)
        at com.arcadedb.cypher.ArcadeCypher.execute(ArcadeCypher.java:66)
        at com.arcadedb.cypher.query.CypherQueryEngine.command(CypherQueryEngine.java:77)
        ... 14 more
Caused by: javax.script.ScriptException: java.util.concurrent.ExecutionException: java.lang.StackOverflowError
        at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:383)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
        at com.arcadedb.gremlin.ArcadeGremlin.executeStatement(ArcadeGremlin.java:235)
        at com.arcadedb.gremlin.ArcadeGremlin.executeStatement(ArcadeGremlin.java:212)
        at com.arcadedb.gremlin.ArcadeGremlin.execute(ArcadeGremlin.java:73)
        ... 16 more
Caused by: java.util.concurrent.ExecutionException: java.lang.StackOverflowError
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2005)
        at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.getScriptClass(GremlinGroovyScriptEngine.java:572)
        at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:379)
        ... 20 more
Caused by: java.lang.StackOverflowError
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)
        at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:77)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitMethodCallExpression(CodeVisitorSupport.java:184)

code to reproduce :

import requests

url = "http://localhost:2480/api/v1/query/test_RID2"
import json

command = open("out.cypher_string.txt", "r", encoding="utf-8-sig").read()
payload_json = json.load(open("out.cypher_string_params.json", "r", encoding="utf-8-sig"))

json_payload = json.dumps({"command": command,
                "language": "cypher",
                "params": payload_json
            })

headers = {"Content-Type": "application/json"}
response = requests.post(
    url,
    data=json_payload,

    auth=('root', 'rootroot'),
)
print(response.text)

out.cypher_string_params.json
out.cypher_string.txt

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationwontfixThis will not be worked on

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions