[ 
https://issues.apache.org/jira/browse/TINKERPOP-2851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17655363#comment-17655363
 ] 

Zeyang Zhuang commented on TINKERPOP-2851:
------------------------------------------

Hi! Here is the detailed information for reproduction.
We create a graph with 100 vertexes, 200 edges, 20 vertex labels, and 20 edge 
labels.
``` gremlin
# Add 100 Vertices:
g.addV('vl5').property('vp3','2399003091398805872').property('vp2','3077467810869698815').as('0')
g.addV('vl1').property('vp0','630787249').property('vp3','-3517677616440167387').as('3')
g.addV('vl7').property('vp3','-6821906321395390191').as('6')
g.addV('vl2').property('vp0','1549738362').as('8')
g.addV('vl5').property('vp1','false').as('10')
g.addV('vl0').property('vp1','true').as('12')
g.addV('vl6').property('vp2','-2191271089123820628').as('14')
g.addV('vl4').property('vp0','1346985100').as('16')
g.addV('vl2').property('vp0','-652288048').as('18')
g.addV('vl2').property('vp0','1346985100').as('20')
g.addV('vl3').property('vp1','false').property('vp3','-1264796649404884914').as('22')
g.addV('vl6').property('vp0','760697041').property('vp2','5515124963535059414').as('25')
g.addV('vl0').property('vp1','false').as('28')
g.addV('vl2').property('vp0','1477960381').as('30')
g.addV('vl3').property('vp1','true').property('vp3','5066816437931794718').as('32')
g.addV('vl6').property('vp2','3540919618945251582').as('35')
g.addV('vl2').property('vp0','621902071').as('37')
g.addV('vl0').property('vp1','false').as('39')
g.addV('vl6').property('vp1','true').property('vp0','760697041').property('vp2','-8687783619319327842').as('41')
g.addV('vl6').property('vp1','true').property('vp0','-1939253928').property('vp2','-7169166749232222247').as('45')
g.addV('vl2').property('vp0','1100961996').as('49')
g.addV('vl2').property('vp0','1720194245').as('51')
g.addV('vl0').property('vp1','true').as('53')
g.addV('vl0').property('vp1','false').as('55')
g.addV('vl3').property('vp1','false').property('vp3','5036273282192736940').as('57')
g.addV('vl6').property('vp0','630787249').property('vp2','-695386933614164984').as('60')
g.addV('vl3').property('vp1','false').as('63')
g.addV('vl7').property('vp3','6156477481297832441').as('65')
g.addV('vl7').property('vp3','2451841407259932424').as('67')
g.addV('vl1').property('vp0','1720194245').property('vp3','4180196283227812788').as('69')
g.addV('vl5').property('vp1','false').property('vp3','-142423452692498815').property('vp2','5773900247219878757').as('72')
g.addV('vl2').property('vp0','1100961996').as('76')
g.addV('vl6').property('vp1','false').property('vp0','0').property('vp2','-2945707960834978848').as('78')
g.addV('vl0').property('vp1','true').as('82')
g.addV('vl0').property('vp1','true').as('84')
g.addV('vl5').property('vp1','true').property('vp3','-7780416670224106391').property('vp2','7667672310189448864').as('86')
g.addV('vl0').property('vp1','false').as('90')
g.addV('vl3').property('vp1','true').property('vp3','-7234829532585425207').as('92')
g.addV('vl6').property('vp1','true').property('vp0','-1939253928').property('vp2','-8304115609193317034').as('95')
g.addV('vl7').property('vp3','5379814974274013949').as('99')
g.addV('vl5').property('vp1','false').property('vp2','44529098779389503').as('101')
g.addV('vl7').property('vp3','12955475947850935').as('104')
g.addV('vl5').property('vp1','false').as('106')
g.addV('vl5').property('vp1','true').property('vp3','-6354908713480703378').property('vp2','-6648398374762037450').as('108')
g.addV('vl7').property('vp3','6076450776184365400').as('112')
g.addV('vl6').property('vp1','false').property('vp0','-1005789700').as('114')
g.addV('vl6').property('vp1','false').property('vp2','-6756131688882927705').as('117')
g.addV('vl6').property('vp1','true').property('vp0','-607048627').property('vp2','-1893916878817274282').as('120')
g.addV('vl5').property('vp1','false').property('vp3','8389990816939880263').property('vp2','-3534422384181438310').as('124')
g.addV('vl7').property('vp3','8081715932091535235').as('128')
g.addV('vl3').property('vp1','false').property('vp3','-1240637785134796790').as('130')
g.addV('vl1').property('vp0','1334280981').property('vp3','5833964092678239986').as('133')
g.addV('vl2').property('vp0','1169968351').as('136')
g.addV('vl0').property('vp1','false').as('138')
g.addV('vl0').property('vp1','false').as('140')
g.addV('vl1').property('vp3','-1615462807415042837').as('142')
g.addV('vl0').property('vp1','false').as('144')
g.addV('vl7').property('vp3','8334407367597221316').as('146')
g.addV('vl6').property('vp0','594646443').as('148')
g.addV('vl1').property('vp0','-607048627').property('vp3','-7803505387193644178').as('150')
g.addV('vl5').property('vp1','false').as('153')
g.addV('vl4').property('vp1','true').property('vp0','-902766033').as('155')
g.addV('vl2').property('vp0','1100961996').as('158')
g.addV('vl1').property('vp0','1306320337').property('vp3','-4429418017019149304').as('160')
g.addV('vl0').property('vp1','false').as('163')
g.addV('vl7').property('vp3','-5361669229351726065').as('165')
g.addV('vl2').property('vp0','464629510').as('167')
g.addV('vl6').property('vp0','280703646').property('vp2','3186076790902082408').as('169')
g.addV('vl7').property('vp3','7113847449361080916').as('172')
g.addV('vl1').property('vp0','1169968351').as('174')
g.addV('vl1').property('vp3','-8727105525729049550').as('176')
g.addV('vl1').property('vp3','4998342192932310764').as('178')
g.addV('vl4').property('vp1','true').as('180')
g.addV('vl4').property('vp0','630787249').as('182')
g.addV('vl0').property('vp1','false').as('184')
g.addV('vl0').property('vp1','false').as('186')
g.addV('vl6').property('vp1','true').property('vp0','-698798247').property('vp2','-3065804166731365802').as('188')
g.addV('vl7').property('vp3','1843344205459353502').as('192')
g.addV('vl1').property('vp0','1951018496').property('vp3','-5184154838419509549').as('194')
g.addV('vl2').property('vp0','1549738362').as('197')
g.addV('vl4').property('vp1','false').as('199')
g.addV('vl7').property('vp3','8612018196826748891').as('201')
g.addV('vl4').property('vp1','true').property('vp0','-698798247').as('203')
g.addV('vl5').property('vp3','-8249045735851873789').property('vp2','3504340455662906994').as('206')
g.addV('vl3').property('vp1','true').property('vp3','-1981108756526969422').as('209')
g.addV('vl3').property('vp1','false').property('vp3','585979505316298753').as('212')
g.addV('vl3').property('vp1','true').property('vp3','-6242097913970985821').as('215')
g.addV('vl3').property('vp3','8659182515879291961').as('218')
g.addV('vl6').property('vp1','false').property('vp2','-5694106461987791355').as('220')
g.addV('vl0').property('vp1','false').as('223')
g.addV('vl5').property('vp1','false').property('vp3','9221348220918256928').as('225')
g.addV('vl0').property('vp1','false').as('228')
g.addV('vl5').property('vp1','false').property('vp3','8768506951819023767').property('vp2','-5320261027629029083').as('230')
g.addV('vl7').property('vp3','-2398584751968359432').as('234')
g.addV('vl4').property('vp1','true').property('vp0','1334280981').as('236')
g.addV('vl7').property('vp3','2441189991804354695').as('239')
g.addV('vl0').property('vp1','true').as('241')
g.addV('vl4').property('vp0','1105646590').as('243')
g.addV('vl6').property('vp1','true').as('245')
g.addV('vl5').property('vp1','true').property('vp3','-8951868083332445365').property('vp2','7648880752186215016').as('247')

# Add 200 Edges:
g.addE('el0').from('136').to('32')
g.addE('el2').from('82').to('169')
g.addE('el4').from('84').to('203')
g.addE('el1').from('206').to('84')
g.addE('el6').from('160').to('37')
g.addE('el0').from('8').to('22')
g.addE('el1').from('108').to('186')
g.addE('el2').from('28').to('35')
g.addE('el2').from('228').to('60')
g.addE('el1').from('72').to('144')
g.addE('el3').from('35').to('49')
g.addE('el2').from('241').to('95')
g.addE('el7').from('22').to('92')
g.addE('el7').from('63').to('212')
g.addE('el6').from('178').to('49')
g.addE('el3').from('35').to('8')
g.addE('el3').from('169').to('167')
g.addE('el0').from('20').to('92')
g.addE('el0').from('30').to('63')
g.addE('el7').from('218').to('209')
g.addE('el7').from('92').to('32')
g.addE('el7').from('92').to('215')
g.addE('el6').from('178').to('37')
g.addE('el0').from('30').to('215')
g.addE('el6').from('174').to('51')
g.addE('el2').from('39').to('78')
g.addE('el1').from('247').to('186')
g.addE('el0').from('20').to('212')
g.addE('el6').from('176').to('30')
g.addE('el4').from('184').to('16')
g.addE('el0').from('76').to('63')
g.addE('el6').from('160').to('136')
g.addE('el2').from('84').to('169')
g.addE('el4').from('163').to('203')
g.addE('el7').from('92').to('63')
g.addE('el7').from('209').to('209')
g.addE('el2').from('223').to('78')
g.addE('el4').from('241').to('16')
g.addE('el5').from('241').to('247')
g.addE('el3').from('35').to('37')
g.addE('el6').from('194').to('197')
g.addE('el7').from('215').to('22')
g.addE('el1').from('225').to('39')
g.addE('el2').from('228').to('41')
g.addE('el5').from('90').to('206')
g.addE('el6').from('178').to('51')
g.addE('el3').from('95').to('51')
g.addE('el3').from('78').to('197')
g.addE('el4').from('82').to('16')
g.addE('el2').from('28').to('114')
g.addE('el2').from('228').to('14')
g.addE('el5').from('12').to('10')
g.addE('el1').from('0').to('84')
g.addE('el3').from('220').to('30')
g.addE('el7').from('57').to('63')
g.addE('el5').from('163').to('108')
g.addE('el7').from('57').to('209')
g.addE('el0').from('8').to('215')
g.addE('el5').from('12').to('72')
g.addE('el0').from('167').to('215')
g.addE('el7').from('215').to('32')
g.addE('el6').from('176').to('20')
g.addE('el6').from('178').to('197')
g.addE('el2').from('241').to('45')
g.addE('el0').from('158').to('209')
g.addE('el6').from('174').to('76')
g.addE('el2').from('144').to('45')
g.addE('el7').from('22').to('209')
g.addE('el6').from('178').to('167')
g.addE('el7').from('92').to('92')
g.addE('el4').from('82').to('155')
g.addE('el0').from('51').to('209')
g.addE('el3').from('41').to('37')
g.addE('el2').from('186').to('60')
g.addE('el1').from('10').to('39')
g.addE('el1').from('230').to('241')
g.addE('el5').from('186').to('86')
g.addE('el3').from('120').to('197')
g.addE('el5').from('28').to('106')
g.addE('el1').from('230').to('90')
g.addE('el2').from('28').to('60')
g.addE('el3').from('220').to('49')
g.addE('el1').from('106').to('184')
g.addE('el1').from('206').to('140')
g.addE('el6').from('176').to('18')
g.addE('el4').from('84').to('182')
g.addE('el0').from('20').to('130')
g.addE('el4').from('53').to('243')
g.addE('el3').from('117').to('51')
g.addE('el5').from('39').to('72')
g.addE('el0').from('37').to('22')
g.addE('el7').from('209').to('57')
g.addE('el5').from('184').to('206')
g.addE('el2').from('144').to('245')
g.addE('el3').from('45').to('8')
g.addE('el6').from('133').to('167')
g.addE('el2').from('84').to('148')
g.addE('el4').from('144').to('243')
g.addE('el2').from('186').to('35')
g.addE('el5').from('140').to('101')
g.addE('el6').from('150').to('197')
g.addE('el1').from('153').to('39')
g.addE('el1').from('247').to('184')
g.addE('el3').from('78').to('167')
g.addE('el0').from('30').to('212')
g.addE('el3').from('120').to('18')
g.addE('el5').from('184').to('108')
g.addE('el6').from('178').to('18')
g.addE('el2').from('223').to('95')
g.addE('el4').from('144').to('182')
g.addE('el6').from('3').to('197')
g.addE('el3').from('45').to('20')
g.addE('el2').from('84').to('114')
g.addE('el5').from('138').to('0')
g.addE('el1').from('72').to('186')
g.addE('el6').from('160').to('18')
g.addE('el0').from('197').to('63')
g.addE('el5').from('140').to('108')
g.addE('el5').from('12').to('101')
g.addE('el5').from('144').to('106')
g.addE('el0').from('51').to('130')
g.addE('el3').from('245').to('158')
g.addE('el5').from('53').to('86')
g.addE('el2').from('55').to('114')
g.addE('el1').from('101').to('82')
g.addE('el1').from('101').to('228')
g.addE('el4').from('82').to('182')
g.addE('el4').from('39').to('182')
g.addE('el5').from('39').to('106')
g.addE('el1').from('153').to('241')
g.addE('el4').from('184').to('155')
g.addE('el3').from('117').to('8')
g.addE('el1').from('10').to('144')
g.addE('el4').from('228').to('16')
g.addE('el2').from('163').to('95')
g.addE('el4').from('28').to('236')
g.addE('el2').from('140').to('60')
g.addE('el6').from('3').to('49')
g.addE('el2').from('138').to('245')
g.addE('el0').from('18').to('92')
g.addE('el1').from('86').to('90')
g.addE('el0').from('37').to('218')
g.addE('el0').from('197').to('218')
g.addE('el6').from('69').to('136')
g.addE('el3').from('114').to('197')
g.addE('el0').from('136').to('57')
g.addE('el3').from('188').to('20')
g.addE('el0').from('37').to('212')
g.addE('el2').from('140').to('220')
g.addE('el4').from('39').to('203')
g.addE('el6').from('3').to('136')
g.addE('el0').from('20').to('209')
g.addE('el4').from('53').to('203')
g.addE('el3').from('148').to('51')
g.addE('el3').from('25').to('20')
g.addE('el1').from('124').to('140')
g.addE('el3').from('188').to('167')
g.addE('el0').from('18').to('130')
g.addE('el4').from('186').to('203')
g.addE('el3').from('60').to('197')
g.addE('el2').from('53').to('114')
g.addE('el2').from('12').to('78')
g.addE('el0').from('167').to('218')
g.addE('el3').from('14').to('158')
g.addE('el1').from('230').to('140')
g.addE('el0').from('158').to('92')
g.addE('el5').from('55').to('101')
g.addE('el1').from('10').to('138')
g.addE('el2').from('12').to('114')
g.addE('el4').from('90').to('16')
g.addE('el6').from('174').to('158')
g.addE('el6').from('142').to('20')
g.addE('el1').from('247').to('53')
g.addE('el3').from('114').to('167')
g.addE('el1').from('206').to('228')
g.addE('el1').from('247').to('55')
g.addE('el3').from('41').to('136')
g.addE('el7').from('215').to('63')
g.addE('el0').from('49').to('212')
g.addE('el5').from('39').to('101')
g.addE('el7').from('57').to('218')
g.addE('el5').from('82').to('247')
g.addE('el4').from('55').to('203')
g.addE('el0').from('167').to('22')
g.addE('el2').from('241').to('114')
g.addE('el2').from('82').to('95')
g.addE('el6').from('194').to('18')
g.addE('el0').from('76').to('209')
g.addE('el7').from('209').to('22')
g.addE('el1').from('10').to('84')
g.addE('el6').from('142').to('51')
g.addE('el5').from('55').to('10')
g.addE('el3').from('95').to('76')
g.addE('el0').from('51').to('215')
g.addE('el5').from('184').to('0')
g.addE('el1').from('124').to('186')
g.addE('el1').from('225').to('184')
g.addE('el6').from('133').to('30')
g.addE('el2').from('140').to('95')
g.addE('el3').from('117').to('18')
```
Next we use `g.V().id()` to get the node ids of the graph, then use for loop to 
traverse all pairs of the nodes. When executing the following queries:
1) `g.V(30).repeat(out().simplePath()).until(hasId(10)).path().size()` return 11
2) `g.V(10).repeat(out().simplePath()).until(hasId(12)).path().size()` return 5
3) 
`g.V(30).repeat(out().simplePath()).until(hasId(10)).repeat(out().simplePath()).until(hasId(12)).path().size()`
 return 18. Query 3 should have returned 11*5.

It should be noted that after building a graph, and randomly choosing three 
nodes for path number calculation, there's more result inconsistency than the 
example I presented above.

> TinkerPop could not deal with correct path traversal results
> ------------------------------------------------------------
>
>                 Key: TINKERPOP-2851
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2851
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: process
>    Affects Versions: 3.4.10, 3.6.1
>         Environment: Version: 3.4.10
> Storage Backend: in-memory
>            Reporter: Zeyang Zhuang
>            Priority: Major
>
> - Expected Behavior:
> We construct the following scenario: x equals count nodes(A->B) path numbers, 
> y equals count nodes(B->C) path numbers, z equals count(A->B->C) path 
> numbers. Then z should equal to x*y.
> We generate graph schema and data based on random strings and values. We 
> build the graph with 100 vertexes, 200 edges, 20 vertex labels, and 20 edge 
> labels.
> `g.V().id()` is used to get the node ids of the graph, then can use for loop 
> to traverse all the nodes. Here is one of our examples executed.
> 1) `g.V(46).repeat(out().simplePath()).until(hasId(0)).path().size()` return 9
> 2) `g.V(0).repeat(out().simplePath()).until(hasId(276)).path().size()` return 
> 8
> 3) 
> `g.V(46).repeat(out().simplePath()).until(hasId(0)).repeat(out().simplePath()).until(hasId(276)).path().size()`,
>  should return 9*8.
> - Current Behavior:
> The query 3 return 7 != 9*8.
> - Steps to Reproduce:
> Although the randomness of the graph data generation process, we still find 
> the problem after many attempts. Reproduce: Generate a large enough graph -> 
> Get all node ids -> Count the number of paths for any two ids -> Multiply and 
> compare following our strategy.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to