[
https://issues.apache.org/jira/browse/TINKERPOP3-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14696148#comment-14696148
]
Dylan Millikin commented on TINKERPOP3-732:
-------------------------------------------
I'm not all that sure myself. That would probably work (though not sure how
happy I would be about that), Probably a non cyclic `Map` would work too (at
least not one that is explicitly declared as such, ie: {{Tree<T> implements
HashMap<T, Tree<T>>}} is a no go)
I've actually implemented the functionalities and some tests around {{Tree}}
serialization locally. the previous bug aside the code works. I just contained
the {{Tree}} in a {{List}} before passing it to the mapper to make sure the
code was functionally sound and it's all good. So once we manage to figure out
what the best way of going about this I should be able to make a PR relatively
quickly.
> gremlin-server GraphSON serializer issue with tree()
> ----------------------------------------------------
>
> Key: TINKERPOP3-732
> URL: https://issues.apache.org/jira/browse/TINKERPOP3-732
> Project: TinkerPop 3
> Issue Type: Improvement
> Components: io
> Affects Versions: 3.0.0-incubating
> Reporter: Dylan Millikin
> Assignee: stephen mallette
>
> When using the {{tree()}} step with a GraphSON serializer the server hangs
> (though I've seen some form of serialization errors in more complex scenarios
> over titan).
> The following works fine in the console but fails using the graphSON
> serializer:
> {code:java}
> g.V(1).repeat(out()).until(out().count().is(0)).tree() // fails with .next()
> as well
> {code}
> The following works without a problem though:
> {code:java}
> g.V(1).repeat(out()).until(out().count().is(0))
> {code}
> Here's the configuration file I use for these tests:
> {code}
> host: localhost
> port: 8182
> threadPoolWorker: 1
> gremlinPool: 8
> scriptEvaluationTimeout: 30000
> serializedResponseTimeout: 30000
> channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
> graphs: {
> graph: conf/tinkergraph-empty.properties
> }
> plugins:
> - tinkerpop.tinkergraph
> scriptEngines: {
> gremlin-groovy: {
> imports: [java.lang.Math],
> staticImports: [java.lang.Math.PI],
> scripts: [scripts/generate-classic.groovy]}}
> serializers:
> - { className:
> org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 }
> - { className:
> org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: {
> serializeResultToString: true }}
> - { className:
> org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0 }
> - { className:
> org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 }
> processors:
> - { className:
> org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: {
> sessionTimeout: 28800000 }}
> metrics: {
> consoleReporter: {enabled: true, interval: 180000},
> csvReporter: {enabled: true, interval: 180000, fileName:
> /tmp/gremlin-server-metrics.csv},
> jmxReporter: {enabled: true},
> slf4jReporter: {enabled: true, interval: 180000},
> gangliaReporter: {enabled: false, interval: 180000, addressingMode:
> MULTICAST},
> graphiteReporter: {enabled: false, interval: 180000}
> }
> threadPoolBoss: 1
> maxInitialLineLength: 4096
> maxHeaderSize: 8192
> maxChunkSize: 8192
> maxContentLength: 65536
> maxAccumulationBufferComponents: 1024
> resultIterationBatchSize: 64
> writeBufferHighWaterMark: 32768
> writeBufferHighWaterMark: 65536
> ssl: {
> enabled: false}
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)