[ 
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)

Reply via email to