Re: Deserializer for "janusgraph:RelationIdentifier" not found
Florian Hockmann
Hi Bill,
the error is telling you that Gremlin.Net cannot deserialize the GraphSON type “janusgraph:RelationIdentifier”. That’s because it’s a JanusGraph specific type and Gremlin.Net doesn’t know anything about such types.
That is why we’ve built JanusGraph.Net: https://github.com/JanusGraph/janusgraph-dotnet/ It’s a .NET library that simply extends Gremlin.Net for such JanusGraph specific types like RelationIdentifier. Switching to that library should solve these problems. It also make it easy to always have a version of the .NET driver that is compatible with your JanusGraph Server version.
If you don’t want to use JanusGraph.Net, then you could also try working around this. You simply need to ensure that the traversal doesn’t return a JanusGraph specific type. In your case, you don’t want anything back any way, so you can simply append a `constant(1)` which returns ‘1’ that is then ignored by the driver since you’re using `Iterate()`:
await gtx.AddV("person").AddE("whatever").Constant(1).Promise(t => t.Iterate());
Regards, Florian
Von: janusgraph-users@... <janusgraph-users@...> Im Auftrag von bill.poole via lists.lfaidata.foundation
Hi All – I’m getting error “Deserializer for "janusgraph:RelationIdentifier" not found” when executing the below traversal using JanusGraph.Net:
await gtx.AddV("person").AddE("whatever").Promise(t => t.Iterate());
The stack trace:
System.InvalidOperationException: Deserializer for "janusgraph:RelationIdentifier" not found at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.EdgeDeserializer.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.TraverserReader.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.ListSerializer.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.GraphSONMessageSerializer.DeserializeMessageAsync(Byte[] message) at Gremlin.Net.Driver.Connection.HandleReceivedAsync(Byte[] received) at Gremlin.Net.Driver.Connection.ReceiveMessagesAsync() at Gremlin.Net.Driver.ProxyConnection.SubmitAsync[T](RequestMessage requestMessage) at Gremlin.Net.Driver.GremlinClient.SubmitAsync[T](RequestMessage requestMessage) at Gremlin.Net.Driver.Remote.DriverRemoteConnection.SubmitBytecodeAsync(Guid requestid, Bytecode bytecode) at Gremlin.Net.Driver.Remote.DriverRemoteConnection.SubmitAsync[S,E](Bytecode bytecode) at Gremlin.Net.Process.Remote.RemoteStrategy.ApplyAsync[S,E](ITraversal`2 traversal) at Gremlin.Net.Process.Traversal.DefaultTraversal`2.ApplyStrategiesAsync() at Gremlin.Net.Process.Traversal.DefaultTraversal`2.Promise[TReturn](Func`2 callback)
I get this error any time I add any edge. Any help would be greatly appreciated!
-Bill
|
|
Deserializer for "janusgraph:RelationIdentifier" not found
bill.poole@...
Hi All – I’m getting error “Deserializer for "janusgraph:RelationIdentifier" not found” when executing the below traversal using JanusGraph.Net:
await gtx.AddV("person").AddE("whatever").Promise(t => t.Iterate());
The stack trace:
System.InvalidOperationException: Deserializer for "janusgraph:RelationIdentifier" not found at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.EdgeDeserializer.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.TraverserReader.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.ListSerializer.Objectify(JsonElement graphsonObject, GraphSONReader reader) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ReadValueOfType(JsonElement typedValue, String graphSONType) at Gremlin.Net.Structure.IO.GraphSON.GraphSONReader.ToObject(JsonElement graphSon) at Gremlin.Net.Structure.IO.GraphSON.GraphSONMessageSerializer.DeserializeMessageAsync(Byte[] message) at Gremlin.Net.Driver.Connection.HandleReceivedAsync(Byte[] received) at Gremlin.Net.Driver.Connection.ReceiveMessagesAsync() at Gremlin.Net.Driver.ProxyConnection.SubmitAsync[T](RequestMessage requestMessage) at Gremlin.Net.Driver.GremlinClient.SubmitAsync[T](RequestMessage requestMessage) at Gremlin.Net.Driver.Remote.DriverRemoteConnection.SubmitBytecodeAsync(Guid requestid, Bytecode bytecode) at Gremlin.Net.Driver.Remote.DriverRemoteConnection.SubmitAsync[S,E](Bytecode bytecode) at Gremlin.Net.Process.Remote.RemoteStrategy.ApplyAsync[S,E](ITraversal`2 traversal) at Gremlin.Net.Process.Traversal.DefaultTraversal`2.ApplyStrategiesAsync() at Gremlin.Net.Process.Traversal.DefaultTraversal`2.Promise[TReturn](Func`2 callback)
I get this error any time I add any edge. Any help would be greatly appreciated!
-Bill
|
|
Java Heap Space - Vertex.edges
Joe Obernberger
Hi all - I'm getting the following exception:
org.janusgraph.core.JanusGraphException: Could not execute operation due to backend exception at org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:54) at org.janusgraph.diskstorage.BackendTransaction.executeRead(BackendTransaction.java:488) at org.janusgraph.diskstorage.BackendTransaction.edgeStoreQuery(BackendTransaction.java:271) at org.janusgraph.graphdb.database.StandardJanusGraph.edgeQuery(StandardJanusGraph.java:490) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$2.lambda$execute$1(StandardJanusGraphTx.java:1320) at org.janusgraph.graphdb.query.profile.QueryProfiler.profile(QueryProfiler.java:107) at org.janusgraph.graphdb.query.profile.QueryProfiler.profile(QueryProfiler.java:99) at org.janusgraph.graphdb.query.profile.QueryProfiler.profile(QueryProfiler.java:95) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$2.lambda$execute$2(StandardJanusGraphTx.java:1320) at org.janusgraph.graphdb.vertices.CacheVertex.loadRelations(CacheVertex.java:73) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$2.execute(StandardJanusGraphTx.java:1320) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$2.execute(StandardJanusGraphTx.java:1231) at org.janusgraph.graphdb.query.QueryProcessor$LimitAdjustingIterator.getNewIterator(QueryProcessor.java:206) at org.janusgraph.graphdb.query.LimitAdjustingIterator.hasNext(LimitAdjustingIterator.java:69) at org.janusgraph.graphdb.util.CloseableIteratorUtils$1.computeNext(CloseableIteratorUtils.java:49) at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:146) at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:141) at org.janusgraph.graphdb.query.ResultSetIterator.nextInternal(ResultSetIterator.java:55) at org.janusgraph.graphdb.query.ResultSetIterator.<init>(ResultSetIterator.java:45) at org.janusgraph.graphdb.query.QueryProcessor.iterator(QueryProcessor.java:68) at org.janusgraph.graphdb.query.QueryProcessor.iterator(QueryProcessor.java:49) at org.janusgraph.graphdb.vertices.AbstractVertex.edges(AbstractVertex.java:194) at com.comp.helios.heliosgraphcorrelationservice.threads.HandleCorrelationIDThread.handleCorrelationID(HandleCorrelationIDThread.java:145) at com.comp.helios.heliosgraphcorrelationservice.threads.HandleCorrelationIDThread.run(HandleCorrelationIDThread.java:68) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: org.janusgraph.diskstorage.PermanentBackendException: Permanent exception while executing backend operation EdgeStoreQuery at org.janusgraph.diskstorage.util.BackendOperation.executeDirect(BackendOperation.java:79) at org.janusgraph.diskstorage.util.BackendOperation.execute(BackendOperation.java:52) ... 26 more Caused by: java.lang.OutOfMemoryError: Java heap space The line of interest: Iterator<Edge> edgeIt = correlationVertex.edges(Direction.IN); That vertex (correlationVertex) may have a lot of OUT bound edges - maybe in the millions. Does this try to load those into RAM? The number of INbound edges is small - maybe 5. Ideas? Thank you! -Joe -- This email has been checked for viruses by AVG antivirus software. www.avg.com
|
|
Re: berkeleyje and lucene NoSuchMethodError
queshaw
Thank you! I haven't gotten past that point now
On Monday, August 22, 2022 10:46 AM, Boxuan Li <liboxuan@...> wrote:
|
|
Re: berkeleyje and lucene NoSuchMethodError
Boxuan Li
Janusgraph 0.6.2 ships with TinkerPop 3.5.3: https://docs.janusgraph.org/changelog/#version-062-release-date-may-31-2022
toggle quoted messageShow quoted text
It seems you introduced TinkerPop 3.6.1 which is not compatible with JanusGraph 0.6.2.
|
|
Re: berkeleyje and lucene NoSuchMethodError
queshaw
I am using gradle. The jars for lucene and and berkekeyje weren't installed in my local maven repository. So, my dependencies are: jar files in my libs directory: janusgraph-berkeleyje-0.6.2.jar janusgraph-lucene-0.6.2.jar then: compileClasspath - Compile classpath for source set 'main'. +--- org.janusgraph:janusgraph-core:0.6.2 | +--- org.janusgraph:janusgraph-driver:0.6.2 | | +--- org.apache.tinkerpop:gremlin-core:3.5.3 -> 3.6.1 | | | +--- org.apache.tinkerpop:gremlin-shaded:3.6.1 | | | +--- org.apache.tinkerpop:gremlin-language:3.6.1 | | | | +--- org.antlr:antlr4-runtime:4.9.1 | | | | +--- org.javatuples:javatuples:1.2 | | | | \--- org.apache.commons:commons-text:1.9 | | | | \--- org.apache.commons:commons-lang3:3.11 | | | +--- org.apache.commons:commons-configuration2:2.7 | | | | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 | | | | +--- org.apache.commons:commons-text:1.8 -> 1.9 (*) | | | | \--- commons-logging:commons-logging:1.2 | | | +--- commons-beanutils:commons-beanutils:1.9.4 | | | | +--- commons-logging:commons-logging:1.2 | | | | \--- commons-collections:commons-collections:3.2.2 | | | +--- commons-collections:commons-collections:3.2.2 | | | +--- org.apache.commons:commons-lang3:3.11 | | | +--- org.yaml:snakeyaml:1.27 | | | +--- com.carrotsearch:hppc:0.7.1 -> 0.8.2 | | | +--- com.jcabi:jcabi-manifests:1.2.1 | | | | \--- com.jcabi:jcabi-log:0.20.0 | | | | \--- org.mockito:mockito-core:3.4.6 | | | | +--- net.bytebuddy:byte-buddy:1.10.13 | | | | +--- net.bytebuddy:byte-buddy-agent:1.10.13 | | | | \--- org.objenesis:objenesis:2.6 | | | +--- net.objecthunter:exp4j:0.4.8 | | | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30 | | | \--- org.slf4j:jcl-over-slf4j:1.7.25 | | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30 | | +--- org.apache.tinkerpop:gremlin-driver:3.5.3 -> 3.6.1 | | | +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) | | | +--- io.netty:netty-all:4.1.77.Final | | | | +--- io.netty:netty-buffer:4.1.77.Final | | | | +--- io.netty:netty-codec:4.1.77.Final | | | | +--- io.netty:netty-codec-dns:4.1.77.Final | | | | +--- io.netty:netty-codec-haproxy:4.1.77.Final | | | | +--- io.netty:netty-codec-http:4.1.77.Final | | | | +--- io.netty:netty-codec-http2:4.1.77.Final | | | | +--- io.netty:netty-codec-memcache:4.1.77.Final | | | | +--- io.netty:netty-codec-mqtt:4.1.77.Final | | | | +--- io.netty:netty-codec-redis:4.1.77.Final | | | | +--- io.netty:netty-codec-smtp:4.1.77.Final | | | | +--- io.netty:netty-codec-socks:4.1.77.Final | | | | +--- io.netty:netty-codec-stomp:4.1.77.Final | | | | +--- io.netty:netty-codec-xml:4.1.77.Final | | | | +--- io.netty:netty-common:4.1.77.Final | | | | +--- io.netty:netty-handler:4.1.77.Final | | | | +--- io.netty:netty-handler-proxy:4.1.77.Final | | | | +--- io.netty:netty-resolver:4.1.77.Final | | | | +--- io.netty:netty-resolver-dns:4.1.77.Final | | | | +--- io.netty:netty-transport:4.1.77.Final | | | | +--- io.netty:netty-transport-rxtx:4.1.77.Final | | | | +--- io.netty:netty-transport-sctp:4.1.77.Final | | | | +--- io.netty:netty-transport-udt:4.1.77.Final | | | | +--- io.netty:netty-transport-classes-epoll:4.1.77.Final | | | | +--- io.netty:netty-transport-native-unix-common:4.1.77.Final | | | | +--- io.netty:netty-transport-classes-kqueue:4.1.77.Final | | | | \--- io.netty:netty-resolver-dns-classes-macos:4.1.77.Final | | | \--- org.apache.commons:commons-lang3:3.11 | | +--- org.apache.tinkerpop:gremlin-groovy:3.5.3 | | | +--- org.apache.tinkerpop:gremlin-core:3.5.3 -> 3.6.1 (*) | | | +--- org.apache.ivy:ivy:2.4.0 | | | +--- org.codehaus.groovy:groovy:2.5.14 | | | +--- org.codehaus.groovy:groovy-groovysh:2.5.14 | | | | +--- org.codehaus.groovy:groovy-cli-picocli:2.5.14 | | | | | \--- info.picocli:picocli:4.3.2 | | | | +--- org.codehaus.groovy:groovy-console:2.5.14 | | | | | +--- org.codehaus.groovy:groovy-templates:2.5.14 | | | | | | \--- org.codehaus.groovy:groovy-xml:2.5.14 | | | | | +--- org.codehaus.groovy:groovy-cli-picocli:2.5.14 (*) | | | | | \--- org.codehaus.groovy:groovy-swing:2.5.14 | | | | \--- jline:jline:2.14.6 | | | +--- org.codehaus.groovy:groovy-json:2.5.14 | | | +--- org.codehaus.groovy:groovy-jsr223:2.5.14 | | | +--- org.apache.commons:commons-lang3:3.11 | | | +--- org.mindrot:jbcrypt:0.4 | | | \--- com.github.ben-manes.caffeine:caffeine:2.3.1 | | +--- com.google.guava:guava:29.0-jre | | | +--- com.google.guava:failureaccess:1.0.1 | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | +--- org.checkerframework:checker-qual:2.11.1 | | | +--- com.google.errorprone:error_prone_annotations:2.3.4 | | | \--- com.google.j2objc:j2objc-annotations:1.3 | | +--- org.noggit:noggit:0.8 | | +--- org.locationtech.spatial4j:spatial4j:0.8 | | +--- org.locationtech.jts:jts-core:1.17.0 | | +--- org.apache.commons:commons-text:1.9 (*) | | \--- org.slf4j:slf4j-api:1.7.30 | +--- org.apache.tinkerpop:tinkergraph-gremlin:3.5.3 -> 3.6.1 | | +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) | | \--- org.apache.commons:commons-lang3:3.11 | +--- org.glassfish:javax.json:1.1.4 | +--- io.dropwizard.metrics:metrics-core:4.1.18 | | \--- org.slf4j:slf4j-api:1.7.30 | +--- io.dropwizard.metrics:metrics-graphite:4.1.18 | | +--- io.dropwizard.metrics:metrics-core:4.1.18 (*) | | +--- com.rabbitmq:amqp-client:5.11.0 | | \--- org.slf4j:slf4j-api:1.7.30 | +--- io.dropwizard.metrics:metrics-jmx:4.1.18 | | +--- io.dropwizard.metrics:metrics-core:4.1.18 (*) | | \--- org.slf4j:slf4j-api:1.7.30 | +--- net.oneandone.reflections8:reflections8:0.11.7 | | \--- org.javassist:javassist:3.22.0-GA | +--- commons-collections:commons-collections:3.2.2 | +--- commons-configuration:commons-configuration:1.10 | | +--- commons-lang:commons-lang:2.6 | | \--- commons-logging:commons-logging:1.1.1 -> 1.2 | +--- org.apache.commons:commons-configuration2:2.7 (*) | +--- commons-io:commons-io:2.8.0 | +--- commons-codec:commons-codec:1.15 | +--- com.carrotsearch:hppc:0.8.2 | +--- com.boundary:high-scale-lib:1.0.6 | +--- com.google.code.findbugs:jsr305:3.0.2 | \--- org.slf4j:slf4j-api:1.7.30 +--- com.sleepycat:je:18.3.12 +--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-analyzers-common:7.7.2 | \--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-queryparser:7.7.2 | +--- org.apache.lucene:lucene-core:7.7.2 | +--- org.apache.lucene:lucene-queries:7.7.2 | \--- org.apache.lucene:lucene-sandbox:7.7.2 +--- org.apache.lucene:lucene-spatial:7.7.2 | \--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-spatial-extras:7.7.2 | +--- org.apache.lucene:lucene-core:7.7.2 | +--- org.apache.lucene:lucene-spatial3d:7.7.2 | +--- io.sgr:s2-geometry-library-java:1.0.0 | \--- org.locationtech.spatial4j:spatial4j:0.7 -> 0.8 +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) +--- org.apache.tinkerpop:gremlin-driver:3.6.1 (*) \--- org.apache.tinkerpop:tinkergraph-gremlin:3.6.1 (*) compileOnly - Compile only dependencies for source set 'main'. (n) No dependencies default - Configuration for default artifacts. (n) No dependencies implementation - Implementation only dependencies for source set 'main'. (n) +--- org.janusgraph:janusgraph-core:0.6.2 (n) +--- unspecified (n) +--- com.sleepycat:je:18.3.12 (n) +--- org.apache.lucene:lucene-core:7.7.2 (n) +--- org.apache.lucene:lucene-analyzers-common:7.7.2 (n) +--- org.apache.lucene:lucene-queryparser:7.7.2 (n) +--- org.apache.lucene:lucene-spatial:7.7.2 (n) +--- org.apache.lucene:lucene-spatial-extras:7.7.2 (n) +--- org.apache.tinkerpop:gremlin-core:3.6.1 (n) +--- org.apache.tinkerpop:gremlin-driver:3.6.1 (n) \--- org.apache.tinkerpop:tinkergraph-gremlin:3.6.1 (n) mainSourceElements - List of source directories contained in the Main SourceSet. (n) No dependencies runtimeClasspath - Runtime classpath of source set 'main'. +--- org.janusgraph:janusgraph-core:0.6.2 | +--- org.janusgraph:janusgraph-driver:0.6.2 | | +--- org.apache.tinkerpop:gremlin-core:3.5.3 -> 3.6.1 | | | +--- org.apache.tinkerpop:gremlin-shaded:3.6.1 | | | +--- org.apache.tinkerpop:gremlin-language:3.6.1 | | | | +--- org.antlr:antlr4-runtime:4.9.1 | | | | +--- org.javatuples:javatuples:1.2 | | | | \--- org.apache.commons:commons-text:1.9 | | | | \--- org.apache.commons:commons-lang3:3.11 | | | +--- org.apache.commons:commons-configuration2:2.7 | | | | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 | | | | +--- org.apache.commons:commons-text:1.8 -> 1.9 (*) | | | | \--- commons-logging:commons-logging:1.2 | | | +--- commons-beanutils:commons-beanutils:1.9.4 | | | | +--- commons-logging:commons-logging:1.2 | | | | \--- commons-collections:commons-collections:3.2.2 | | | +--- commons-collections:commons-collections:3.2.2 | | | +--- org.apache.commons:commons-lang3:3.11 | | | +--- org.yaml:snakeyaml:1.27 | | | +--- com.carrotsearch:hppc:0.7.1 -> 0.8.2 | | | +--- com.jcabi:jcabi-manifests:1.2.1 | | | | \--- com.jcabi:jcabi-log:0.20.0 | | | | \--- org.mockito:mockito-core:3.4.6 | | | | +--- net.bytebuddy:byte-buddy:1.10.13 | | | | +--- net.bytebuddy:byte-buddy-agent:1.10.13 | | | | \--- org.objenesis:objenesis:2.6 | | | +--- net.objecthunter:exp4j:0.4.8 | | | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30 | | | \--- org.slf4j:jcl-over-slf4j:1.7.25 | | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30 | | +--- org.apache.tinkerpop:gremlin-driver:3.5.3 -> 3.6.1 | | | +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) | | | +--- io.netty:netty-all:4.1.77.Final | | | | +--- io.netty:netty-buffer:4.1.77.Final | | | | | \--- io.netty:netty-common:4.1.77.Final | | | | +--- io.netty:netty-codec:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | \--- io.netty:netty-resolver:4.1.77.Final | | | | | \--- io.netty:netty-common:4.1.77.Final | | | | +--- io.netty:netty-codec-dns:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | \--- io.netty:netty-codec:4.1.77.Final (*) | | | | +--- io.netty:netty-codec-haproxy:4.1.77.Final | | | | +--- io.netty:netty-codec-http:4.1.77.Final | | | | +--- io.netty:netty-codec-http2:4.1.77.Final | | | | +--- io.netty:netty-codec-memcache:4.1.77.Final | | | | +--- io.netty:netty-codec-mqtt:4.1.77.Final | | | | +--- io.netty:netty-codec-redis:4.1.77.Final | | | | +--- io.netty:netty-codec-smtp:4.1.77.Final | | | | +--- io.netty:netty-codec-socks:4.1.77.Final | | | | +--- io.netty:netty-codec-stomp:4.1.77.Final | | | | +--- io.netty:netty-codec-xml:4.1.77.Final | | | | +--- io.netty:netty-common:4.1.77.Final | | | | +--- io.netty:netty-handler:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-resolver:4.1.77.Final (*) | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | \--- io.netty:netty-codec:4.1.77.Final (*) | | | | +--- io.netty:netty-handler-proxy:4.1.77.Final | | | | +--- io.netty:netty-resolver:4.1.77.Final (*) | | | | +--- io.netty:netty-resolver-dns:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-resolver:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | +--- io.netty:netty-codec:4.1.77.Final (*) | | | | | +--- io.netty:netty-codec-dns:4.1.77.Final (*) | | | | | \--- io.netty:netty-handler:4.1.77.Final (*) | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | +--- io.netty:netty-transport-rxtx:4.1.77.Final | | | | +--- io.netty:netty-transport-sctp:4.1.77.Final | | | | +--- io.netty:netty-transport-udt:4.1.77.Final | | | | +--- io.netty:netty-transport-classes-epoll:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport-native-unix-common:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport:4.1.77.Final (*) | | | | +--- io.netty:netty-transport-native-unix-common:4.1.77.Final (*) | | | | +--- io.netty:netty-transport-classes-kqueue:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport-native-unix-common:4.1.77.Final (*) | | | | +--- io.netty:netty-resolver-dns-classes-macos:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-resolver-dns:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport-native-unix-common:4.1.77.Final (*) | | | | +--- io.netty:netty-transport-native-epoll:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport-native-unix-common:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport-classes-epoll:4.1.77.Final (*) | | | | +--- io.netty:netty-transport-native-kqueue:4.1.77.Final | | | | | +--- io.netty:netty-common:4.1.77.Final | | | | | +--- io.netty:netty-buffer:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport:4.1.77.Final (*) | | | | | +--- io.netty:netty-transport-native-unix-common:4.1.77.Final (*) | | | | | \--- io.netty:netty-transport-classes-kqueue:4.1.77.Final (*) | | | | \--- io.netty:netty-resolver-dns-native-macos:4.1.77.Final | | | | \--- io.netty:netty-resolver-dns-classes-macos:4.1.77.Final (*) | | | \--- org.apache.commons:commons-lang3:3.11 | | +--- org.apache.tinkerpop:gremlin-groovy:3.5.3 | | | +--- org.apache.tinkerpop:gremlin-core:3.5.3 -> 3.6.1 (*) | | | +--- org.apache.ivy:ivy:2.4.0 | | | +--- org.codehaus.groovy:groovy:2.5.14 | | | +--- org.codehaus.groovy:groovy-groovysh:2.5.14 | | | | +--- org.codehaus.groovy:groovy-cli-picocli:2.5.14 | | | | | \--- info.picocli:picocli:4.3.2 | | | | +--- org.codehaus.groovy:groovy-console:2.5.14 | | | | | +--- org.codehaus.groovy:groovy-templates:2.5.14 | | | | | | \--- org.codehaus.groovy:groovy-xml:2.5.14 | | | | | +--- org.codehaus.groovy:groovy-cli-picocli:2.5.14 (*) | | | | | \--- org.codehaus.groovy:groovy-swing:2.5.14 | | | | \--- jline:jline:2.14.6 | | | +--- org.codehaus.groovy:groovy-json:2.5.14 | | | +--- org.codehaus.groovy:groovy-jsr223:2.5.14 | | | +--- org.apache.commons:commons-lang3:3.11 | | | +--- org.mindrot:jbcrypt:0.4 | | | \--- com.github.ben-manes.caffeine:caffeine:2.3.1 | | +--- com.google.guava:guava:29.0-jre | | | +--- com.google.guava:failureaccess:1.0.1 | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | +--- org.checkerframework:checker-qual:2.11.1 | | | +--- com.google.errorprone:error_prone_annotations:2.3.4 | | | \--- com.google.j2objc:j2objc-annotations:1.3 | | +--- org.noggit:noggit:0.8 | | +--- org.locationtech.spatial4j:spatial4j:0.8 | | +--- org.locationtech.jts:jts-core:1.17.0 | | +--- org.apache.commons:commons-text:1.9 (*) | | \--- org.slf4j:slf4j-api:1.7.30 | +--- org.apache.tinkerpop:tinkergraph-gremlin:3.5.3 -> 3.6.1 | | +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) | | \--- org.apache.commons:commons-lang3:3.11 | +--- org.glassfish:javax.json:1.1.4 | +--- io.dropwizard.metrics:metrics-core:4.1.18 | | \--- org.slf4j:slf4j-api:1.7.30 | +--- io.dropwizard.metrics:metrics-graphite:4.1.18 | | +--- io.dropwizard.metrics:metrics-core:4.1.18 (*) | | +--- com.rabbitmq:amqp-client:5.11.0 | | \--- org.slf4j:slf4j-api:1.7.30 | +--- io.dropwizard.metrics:metrics-jmx:4.1.18 | | +--- io.dropwizard.metrics:metrics-core:4.1.18 (*) | | \--- org.slf4j:slf4j-api:1.7.30 | +--- net.oneandone.reflections8:reflections8:0.11.7 | | \--- org.javassist:javassist:3.22.0-GA | +--- commons-collections:commons-collections:3.2.2 | +--- commons-configuration:commons-configuration:1.10 | | +--- commons-lang:commons-lang:2.6 | | \--- commons-logging:commons-logging:1.1.1 -> 1.2 | +--- org.apache.commons:commons-configuration2:2.7 (*) | +--- commons-io:commons-io:2.8.0 | +--- commons-codec:commons-codec:1.15 | +--- com.carrotsearch:hppc:0.8.2 | +--- com.boundary:high-scale-lib:1.0.6 | +--- com.google.code.findbugs:jsr305:3.0.2 | \--- org.slf4j:slf4j-api:1.7.30 +--- com.sleepycat:je:18.3.12 +--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-analyzers-common:7.7.2 | \--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-queryparser:7.7.2 | +--- org.apache.lucene:lucene-core:7.7.2 | +--- org.apache.lucene:lucene-queries:7.7.2 | \--- org.apache.lucene:lucene-sandbox:7.7.2 +--- org.apache.lucene:lucene-spatial:7.7.2 | \--- org.apache.lucene:lucene-core:7.7.2 +--- org.apache.lucene:lucene-spatial-extras:7.7.2 | +--- org.apache.lucene:lucene-core:7.7.2 | +--- org.apache.lucene:lucene-spatial3d:7.7.2 | +--- io.sgr:s2-geometry-library-java:1.0.0 | \--- org.locationtech.spatial4j:spatial4j:0.7 -> 0.8 +--- org.apache.tinkerpop:gremlin-core:3.6.1 (*) +--- org.apache.tinkerpop:gremlin-driver:3.6.1 (*) \--- org.apache.tinkerpop:tinkergraph-gremlin:3.6.1 (*) runtimeElements - Elements of runtime for main. (n) No dependencies runtimeOnly - Runtime only dependencies for source set 'main'. (n) No dependencies Thanks
On Monday, August 22, 2022 8:24 AM, hadoopmarc@... wrote:
|
|
Re: berkeleyje and lucene NoSuchMethodError
hadoopmarc@...
Probably, janusgraph and tinkerpop versions got mixed up. If you use maven, can you show the janusgraph dependencies you used in the pom.xml (and tinkerpop if present in the pom.xml).
Best wishes, Marc
|
|
berkeleyje and lucene NoSuchMethodError
queshaw
Hi, I hope this is an appropriate question. This is my first attempt to use janusgraph. I got extra dependencies from the 0.6.2 source, without lucene and berkeleyce were not found. I'm using jdk 1.8.2 for both building and running a test program. I get this error: java.lang.NoSuchMethodError: org.apache.tinkerpop.gremlin.structure.util.CloseableIterator.asCloseable(Ljava/util/Iterator;)Lorg/apache/tinkerpop/gremlin/structure/util/CloseableIterator; at org.janusgraph.graphdb.util.CloseableIteratorUtils.<clinit>(CloseableIteratorUtils.java:28) at org.janusgraph.graphdb.query.graph.GraphCentricQueryBuilder.lambda$iterables$1(GraphCentricQueryBuilder.java:240) at com.google.common.collect.Iterables.isEmpty(Iterables.java:988) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.addProperty(StandardJanusGraphTx.java:915) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.addProperty(StandardJanusGraphTx.java:838) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.addProperty(StandardJanusGraphTx.java:834) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.makeSchemaVertex(StandardJanusGraphTx.java:970) at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.makePropertyKey(StandardJanusGraphTx.java:989) at org.janusgraph.graphdb.types.StandardPropertyKeyMaker.make(StandardPropertyKeyMaker.java:114) at lnf.LoadGraph.load(LoadGraph.java:81) at lnf.LoadGraph.go(LoadGraph.java:58) at lnf.LoadGraph.main(LoadGraph.java:44) The line in question is: PropertyKey url = mgmt.makePropertyKey("url").dataType(String.class).make(); Do you have any idea what the problem could be?
|
|
Re: Janusgraph-full-0.6.1: how to fix "WARNING: Critical severity vulnerabilities were found with Log4j!"
Hi Yingjie,
The JanusGraph and TinkerPop code only explicitly depend on slfj4j, so you can choose the logging implementation. you want You can simply remove the log4j-1.2.17.jar from the lib folder of the janusgraph binary distribution or exclude it in the pom.xml of any project depending on janusgraph. Note that janusgraph also ships with logback and provides a sample config in conf/logback.xml. Best wishes, Marc
|
|
Janusgraph-full-0.6.1: how to fix "WARNING: Critical severity vulnerabilities were found with Log4j!"
Yingjie Li
Hello All,
I have run janusgraph all in one 0.6.1 (janusgraph-full-0.6.1) and have embeded cassandra and elastic search. It seems that the embeded log4j has security issues and the recomended fixes as as below. Any people have done this for their installation, what are the recommended fix ? Thanks Yingjie 1. Upgrade the affected product listed below to a version which includes a patched version of log4j – CISO requires all version 1.x and 2.x to be upgraded to version 2.17.1 or later.2. If upgrade is not possible, the affected component must be uninstalled or deleted.
|
|
Re: 0.5.3 Upsert and RemoveRelation Issues
Boxuan Li
Thanks Sammy. Regarding your last question, I believe it’s a design choice to let user know something wrong happened.
toggle quoted messageShow quoted text
|
|
Re: 0.5.3 Upsert and RemoveRelation Issues
sammy.jia@...
I tried to create a snippet but was unable to reproduce the error. I will have to consult with some people over the weekday. Apologies, creating the snippet may take a bit of time.
In the meantime, do you happen to know the answer to the last question? Is it simply a design choice, or would JanusGraph stop working properly if it exited the method without generating an exception?
|
|
Re: 0.5.3 Upsert and RemoveRelation Issues
Boxuan Li
Hi,
toggle quoted messageShow quoted text
Thanks for reporting and investigating! To help us understand more about the context, would you mind sharing an isolated code snippet that is runnable and can reproduce the error? I was trying to reproduce issue but failed to do so.
Thanks,
Boxuan
|
|
0.5.3 Upsert and RemoveRelation Issues
sammy.jia@...
Hello,
I am using Java and JanusGraph 0.5.3, but I am having issues with a specific snippet of code. The code upserts a vertex and then adds a Cardinality.single property to the upserted vertex, even if the vertex already has the correct property value. The code snippet is provided at the bottom of this message. The code works fine for inserted vertices, but it generates an IllegalArgumentException for updated vertices. The exception is being generated by StandardJanusGraphTx.java's removeRelation method. After some debugging, I discovered that the exact same property step is being called twice for updated vertices. The first property method call uses removeRelation to delete the old property from the updated vertex. The second property method call then uses removeRelation to delete the exact same old property as the first method call (they share the same ID). Strangely, the old property still thinks it is in the 'loaded' state. Midway through removeRelation, the server realizes that that the property has already been deleted, updates the property's lifecycle to 'removed' at roughly StandardJanusGraphTx.java:595, and throws an exception at StandardJanusGraphTx.java:602. P.S. In this specific case, I was replacing a property with the exact same value. Eg. the updated vertex already has a property called "prop3" with the value "value3", but I am calling property("prop3", "value3") anyways without checking the vertex's state. I have three main questions: 1. Why is the property step being called twice? 2. Does JanusGraph allow you to update a Cardinality.single property twice? 3. Why does removeRelation generate a generic IllegalArgumentException when we delete something that has already been deleted? Shouldn't it just output a log and exit the method? --- GraphTraversal<Vertex, Vertex> graphTraversal = null; for (….) { if (graphTraversal == null) { graphTraversal = graphTraversalSource.V().has("prop1", "value1").fold() .coalesce(__.unfold(), __.addV("label") .property("prop1", "value1") .property("prop2", "value2"));
} else { graphTraversal.V().hasLabel("label").has("prop1", "value1").fold() .coalesce(__.unfold(), __.addV("label") .property("prop1", "value1") .property("prop2", "value2")); } graphTraversal.property("prop3", "value3"); // this is somehow being called twice }
|
|
Re: Incorrect result when lucene index is present
OK, I repeated the experiment and got "0 1" again, so I expand on what I did.
I use the janusgraph-0.6.2 full binary distribution and start cassandra and elasticsearch with: $ bin/janusgraph.sh start I leave the running Janusgraph Server unused and start a JanusGraph instance in the gremlin console with: graph = JanusGraphFactory.open('conf/janusgraph-cql-es.properties') Note that your code lines show a private properties file. Best wishes, Marc
|
|
Re: Incorrect result when lucene index is present
inverseintegral42@...
Hey Marc,
I actually just tested your example where p and q are of type Integer with cql and elasticsearch: PropertiesConfiguration conf = ConfigurationUtil.loadPropertiesConfig("conf/test.properties");But I get the output 0, 0 which is what I would expect. You wrote that you got the output 0, 1 though. Do you have any idea where this could come from?
|
|
Re: Incorrect result when lucene index is present
inverseintegral42@...
Dear Marc,
|
|
Re: Using ConfiguredGraphFactory from docker image
Thanks for bringing this up. Indeed, managing custom images is a barrier that you sometimes want to avoid. Can you give the runtime configuration of the standard image a try and report back where this approach possibly strands? Almost anyone wanting to confirm your need will have to test it for themselves!
Best wishes, Marc
|
|
Re: Incorrect result when lucene index is present
hadoopmarc@...
Hi inverseintegral,
You have been quite succesful as a test driver, that is detecting easily reproducible issues! The current issue seems more like an issue of undefined behaviour, rather than an issue related to Lucene or UUID objects. I get the same behaviour when using cql and elasticsearch: ``` graph = JanusGraphFactory.open('conf/janusgraph-cql-es.properties') g = graph.traversal(); m = graph.openManagement(); l = m.makeVertexLabel("L").make(); p = m.makePropertyKey("p").dataType(Integer.class).make(); q = m.makePropertyKey("q").dataType(Integer.class).make(); m.buildIndex("someName", Vertex.class).addKey(p).addKey(q).indexOnly(l).buildMixedIndex("search"); m.commit(); g.addV("L").property("p", 1).next(); g.tx().commit(); g.V().hasLabel("L").has("q").count() // ==> 0 g.V().hasLabel("L").has("q", not(eq(2))).count() // ==> 1 ``` The CompositeIndex, though, has the same behaviour as the case without index (counts 0 and 0). The reference docs do not expand on the use of multiple property keys in an index after adding them. Apparently, when querying a mixed index with a neq() predicate, it is not checked whether the associated property exists or is non-null in the index for that graph element. You can make an issue, again, if you want. Any interest in providing a PR for any of the issues you found? I am sure people on https://lists.lfaidata.foundation/g/janusgraph-dev/topics will want to help you if you would get stuck in the PR process. See also https://docs.janusgraph.org/development/ . I checked for related issue, but only https://github.com/JanusGraph/janusgraph/issues/2588 could be related. Best wishes, Marc
|
|
Using ConfiguredGraphFactory from docker image
cdburke@...
Is it possible to use the ConfiguredGaphFactory so that graphs can be created and deleted dynamically while still using the default docker image? I've been using it by manually copying a modified properties file into the container, which works but is inconvenient (and with the berkeleydb backend I've had to create fresh containers several times after e.g. dropping databases).
I know that some environment variables can be injected at runtime to select different backends etc., but it isn't clear if the backend properties can also be changed in that way. I assume I can build a custom local image if that's the only automated option for making changes to the .properties files, I'd just like to know that for sure before I establish our procedures.
|
|