Skip to content

Deserialization fails with JanusGraph when relations are returned #162

Open
@sunsided

Description

@sunsided

While I get queries like MATCH (n)-[r]->(m) RETURN n, m to work, when executing a query like MATCH (n)-[r]->(m) RETURN n, r, m, the plugin fails with:

Executing query: 
MATCH (n)-[r]->(m) RETURN n, r, m
Error occurred: Wrong serializer selected. Please check connection configuration. Details...

Regardless of the serializer; in fact, all of the selected do work, as long as I don't attempt to return a relation.

Sadly I can't copy the details from the dialog window, but the error messages go along the line of

  • org.apache.tinkerpop.shaded.kryo.KryoException: Encountered unregistered class ID: 65536 (when using Gryo), or
  • org.apache.tinkerpop.shaded.jackson.databing.exc.MismatchedInputException: Cannot deserialize instance of 'java.lang.String' out of START_OBJECT token (when using Graphson)

Screenshot from 2020-01-11 14-08-34

Now this seems to be a known issue and apparently boils down to org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry being unknown on the client side. For example, see e.g.

As far as JanusGraph is concerned, I can work around this issue by replacing

  • org.janusgraph.channelizers.JanusGraphWsAndHttpChannelizer with org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer, and
  • org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry with org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0,

but I'm not sure of the implications there.

Instead, would it be possible to register JanusGraph's types with the plugin so that it works out of the box? I have a Docker Compose setup ready at sunsided/janusgraph-docker that might help in testing.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions