Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Bug
-
3.3.3
-
None
-
None
Description
I could only reproduce the problem of duplicated IDs in the graph output after a query on the Gremlin console if it was a larger/complex input file and only if both GraphML import and export were being used.
If I loaded the file as identical Gryo file the export was without duplication.
I assume there are some thresholds/memory dumps where you might compare the RTM.
There 7 edges with duplicate IDs in the following lines of the attached file
'output__in_table-table_graphml.graphml'
Line 736: Duplicate unique value [370] declared for identity constraint "edge_id_unique" of element "graph".
Line 758: Duplicate unique value [374] declared for identity constraint "edge_id_unique" of element "graph".
Line 783: Duplicate unique value [378] declared for identity constraint "edge_id_unique" of element "graph".
Line 797: Duplicate unique value [382] declared for identity constraint "edge_id_unique" of element "graph".
Line 818: Duplicate unique value [386] declared for identity constraint "edge_id_unique" of element "graph".
Line 854: Duplicate unique value [390] declared for identity constraint "edge_id_unique" of element "graph".
Line 887: Duplicate unique value [400] declared for identity constraint "edge_id_unique" of element "graph".
In addition, the problem is related to the query. If I load and save the Graph immediately no edge problem occurs.
See mail thread: https://groups.google.com/forum/#!searchin/gremlin-users/svante%7Csort:date/gremlin-users/P8MdzzlFtng/vYqYlukJAgAJ
\,,,/
(o o)
----oOOo(3)oOOo----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.io(IoCore.graphml()).readGraph("f:" + File.separator + "tmp" + File.separator + "table_table.graphml");
==>null
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:184 edges:183], standard]
gremlin> g.V().has('label', "EPSILON").as('epsilonV').inE().as('e1').outV().
......1> where(__.outE().count().is(eq(2))).as('choiceV').
......2> outE().where(neq('e1')).as('e2').inV().as('optionalV').
......3> select('choiceV').inE().as('srcE').outV().as('srcV').
......4> addE('optional').to('optionalV').as('newE').
......5> sideEffect(select('srcE').properties().unfold().as('p').
......6> select('newE').property(select('p').key(), select('p').value())).
......7> union(select('srcE').drop(),
......8> select('e1').drop(),
......9> select('e2').drop(),
.....10> select('epsilonV').drop(),
.....11> select('choiceV').drop())
gremlin> graph.io(IoCore.graphml()).writeGraph("f:" + File.separator + "tmp" + File.separator + "output__in_table-table_graphml.graphml");
==>null