-
-
Notifications
You must be signed in to change notification settings - Fork 90
Closed
Milestone
Description
ArcadeDB Version: 23.1.2
JDK Version: openjdk version "11.0.17" 2022-10-18
OS: Ubuntu 22.04.1 LTS
Expected behavior
Connecting with Gremlin console to ArcadeDB v23.1.2 works like in v23.1.1 and previous.
Actual behavior
v23.1.2 crashes
Steps to reproduce
The following steps were tested on v22.12.1, v23.1.1 and v23.1.2 . Only v23.1.2 crashes.
First the server is started without any plugins:
chicken@asteroid:~/arcadedb-22.12.1$ bin/server.sh
The database "graph" is created with a test vertex:
chicken@asteroid:~/arcadedb-22.12.1$ bin/console.sh
ArcadeDB Console v.22.12.1 - Copyrights (c) 2021 Arcade Data Ltd (https://arcadedb.com)
> create database graph
[To redirect Truffle log output to a file use one of the following options:
* '--log.file=<path>' if the option is passed using a guest language launcher.
* '-Dpolyglot.log.file=<path>' if the option is passed using the host Java launcher.
* Configure logging using the polyglot embedding API.]
[engine] WARNING: The polyglot context is using an implementation that does not support runtime compilation.
The guest application code will therefore be executed in interpreted mode only.
Execution only in interpreted mode will strongly impact the guest application performance.
For more information on using GraalVM see https://www.graalvm.org/java/quickstart/.
To disable this warning the '--engine.WarnInterpreterOnly=false' option or use the '-Dpolyglot.engine.WarnInterpreterOnly=false' system property.
{graph}> set language = sql
Set language to sql
{graph}> CREATE VERTEX TYPE TestV;
+---------+------------------+
|NAME |VALUE |
+---------+------------------+
|operation|create vertex type|
|typeName |TestV |
+---------+------------------+
Command executed in 97ms
{graph}> set language = gremlin
Set language to gremlin
{graph}> g.addV('TestV').property('name','chicken')
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/home/chicken/arcadedb-22.12.1/lib/arcadedb-gremlin-22.12.1.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
VERTEX @type:TestV @rid:#1:0
+----+-------+
|NAME|VALUE |
+----+-------+
|name|chicken|
+----+-------+
Command executed in 897ms
{graph}> quit
Then the server is stopped and started again with the Gremlin plugin enabled:
chicken@asteroid:~/arcadedb-22.12.1$ bin/server.sh -Darcadedb.server.plugins=GremlinServer:com.arcadedb.server.gremlin.GremlinServerPlugin
Finally a connection is established with the Gremlin console v3.6.2 by executing the following lines:
import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource;
tBuilder = Cluster.build().addContactPoint("localhost").port(8182).credentials("root", "playwithdata");
tCluster = tBuilder.create();
g = AnonymousTraversalSource.traversal().withRemote(DriverRemoteConnection.using(tCluster));
g.V().elementMap();
This works for ArcadeDB v22.12.1 and v23.1.1 . It prints the test vertex:
gremlin> tBuilder = Cluster.build().addContactPoint("localhost").port(8182).credentials("root", "playwithdata");
==>org.apache.tinkerpop.gremlin.driver.Cluster$Builder@260e3837
gremlin> tCluster = tBuilder.create();
==>localhost/127.0.0.1:8182
gremlin> g = AnonymousTraversalSource.traversal().withRemote(DriverRemoteConnection.using(tCluster));
==>graphtraversalsource[emptygraph[empty], standard]
gremlin> g.V().elementMap();
==>[id:#1:0,label:TestV,name:chicken]
gremlin>
V23.1.2 crahes:
java.lang.NoSuchMethodError: 'void io.netty.handler.codec.DefaultHeadersImpl.<init>(io.netty.util.HashingStrategy, io.netty.handler.codec.ValueConverter, io.netty.handler.codec.DefaultHeaders$NameValidator, int, io.netty.handler.codec.DefaultHeaders$ValueValidator)'
at io.netty.handler.codec.http.DefaultHttpHeaders.<init>(DefaultHttpHeaders.java:86)
at io.netty.handler.codec.http.DefaultHttpHeaders.<init>(DefaultHttpHeaders.java:77)
at io.netty.handler.codec.http.DefaultHttpMessage.<init>(DefaultHttpMessage.java:41)
at io.netty.handler.codec.http.DefaultHttpResponse.<init>(DefaultHttpResponse.java:64)
at io.netty.handler.codec.http.DefaultFullHttpResponse.<init>(DefaultFullHttpResponse.java:62)
at io.netty.handler.codec.http.DefaultFullHttpResponse.<init>(DefaultFullHttpResponse.java:57)
at io.netty.handler.codec.http.DefaultFullHttpResponse.<init>(DefaultFullHttpResponse.java:43)
at io.netty.handler.codec.http.HttpObjectAggregator.<clinit>(HttpObjectAggregator.java:89)
at org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer.configure(WebSocketChannelizer.java:100)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.initChannel(AbstractChannelizer.java:176)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.initChannel(AbstractChannelizer.java:80)
at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:829)
Failed to initialize a channel. Closing: [id: 0x34cc3b13, L:/127.0.0.1:8182 - R:/127.0.0.1:38930]
java.lang.NoClassDefFoundError: Could not initialize class io.netty.handler.codec.http.HttpObjectAggregator
at org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer.configure(WebSocketChannelizer.java:100)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.initChannel(AbstractChannelizer.java:176)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.initChannel(AbstractChannelizer.java:80)
at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:829)
Reactions are currently unavailable