在日常的调试过程中,我们总会遇到一些有趣的bug,在本文我就遇到了一个有意思的查询结果不一致问题。故事的开始 我们在测试NebulaGraph的MATCH语句的时候发现一个很神奇的事情:(rootnebula)〔gdlancer〕match(v1)〔e1。。1〕(v2)whereid(v1)in〔1,2,3,4〕and(v2)〔e1。。1〕(v1)e〔〔:Rel5220{Rel50Bool:true,Rel51Bool:true,Rel52Double:0。533698,Rel53String:StephenCurry,Rel54Double:0。162998}〕〕〔〔:Rel1220{Rel10Int:3,Rel11Int:5,Rel12Int:81,Rel13Double:0。975062,Rel14Bool:true,Rel15Int:59}〕〕〔〔:Rel0220{Rel00Bool:true,Rel01String:KevinDurant,Rel02String:JoelEmbiid,Rel03Int:96,Rel04Double:0。468568,Rel05Int:98,Rel06Int:77}〕〕〔〔:Rel2220{Rel20Int:38,Rel21Double:0。120953,Rel22String:Null1,Rel23Bool:false,Rel24Bool:true,Rel25Int:6,Rel26String:TracyMcGrady}〕〕〔〔:Rel3220{Rel30String:AronBaynes,Rel31String:LeBronJames,Rel32Double:0。831096,Rel33Int:11}〕〕〔〔:Rel4220{Rel40Bool:true,Rel41String:KevinDurant,Rel42Double:0。71757,Rel43String:MarcGasol,Rel44Double:0。285247,Rel45String:CoryJoseph}〕〕Got6rows(timespent146。7ms168。31625ms)Tue,03Jan202314:10:03CST(rootnebula)〔gdlancer〕match(v1)〔e1。。1〕(v2)whereid(v1)in〔1,2,3,4〕and(v2)〔e1。。1〕(v1)eEmptyset(timespent30。67ms58。220042ms)Tue,03Jan202314:10:05CST 同样的语句,两次查询的结果集居然不一样!开始Debug profile出问题的语句:(rootnebula)〔gdlancer〕profilematch(v1)〔e1。。1〕(v2)whereid(v1)in〔1,2,3,4〕and(v2)〔e1。。1〕(v1)eEmptyset(timespent18。755ms79。84375ms)ExecutionPlan(optimizetime1656us)idnamedependenciesprofilingdataoperatorinfo12Project11ver:0,rows:0,execTime:17us,totalTime:19usoutputVar:{colNames:〔e〕,type:DATASET,name:Project12}inputVar:Filter11columns:〔e〕11Filter10ver:0,rows:0,execTime:26us,totalTime:29usoutputVar:{colNames:〔v1,e,v2〕,type:DATASET,name:Filter11}inputVar:PatternApply10condition:((id(v1)1)OR(id(v1)2)OR(id(v1)3)OR(id(v1)4))isStable:false10PatternApply6,9ver:0,rows:0,execTime:84us,totalTime:87usoutputVar:{colNames:〔v1,e,v2〕,type:DATASET,name:PatternApply10}inputVar:{rightVar:AppendVertices9,leftVar:Project6}keyCols:〔id(。v2),id(。v1)〕6Project5ver:0,rows:18,execTime:103us,totalTime:106usoutputVar:{colNames:〔v1,e,v2〕,name:Project6,type:DATASET}inputVar:AppendVertices5columns:〔。v1ASv1,〔VAR2IN。eWHEREisedge(VAR2)〕ASe,。v2ASv2〕5AppendVertices4{outputVar:{ver:0,rows:18,execTime:438us,totalTime:1613uscolNames:〔resp〔2〕:{v1,exec:308(us),e,host:store1:9779,v2total:1114(us)〕,}name:AppendVertices5,totalrpc:1350(us)type:DATASETresp〔0〕:{}exec:356(us),inputVar:Traverse4host:store3:9779,space:8total:1248(us)dedup:true}limit:1resp〔1〕:{filter:exec:323(us),orderBy:〔〕host:store2:9779,src:nonedirectdst(。e)total:966(us)props:〔}{}tagId:13,props:〔tag〕},{tagId:12,props:〔tag〕},{props:〔tag〕,tagId:11},{tagId:9,props:〔tag〕},{tagId:10,props:〔tag〕},{props:〔tag〕,tagId:14},{props:〔tag〕,tagId:15}〕exprs:vertexfilter:iftrackpreviouspath:true4Traverse2{outputVar:{ver:0,rows:18,execTime:597us,totalTime:2943uscolNames:〔step〔1〕:〔v1,{eexec:811(us),〕,host:store2:9779,name:Traverse4,storagedetail:{type:DATASETGetNeighborsNode:551(us),}HashJoinNode:415(us),inputVar:Dedup2RelNode:551(us),space:8SingleEdgeNode:391(us)dedup:true},limit:1total:2139(us),filter:totalrpctime:2328(us),orderBy:〔〕vertices:2src:。vid},edgeTypes:〔〕{edgeDirection:OUTEDGEexec:769(us),vertexProps:host:store1:9779,edgeProps:〔storagedetail:{{GetNeighborsNode:259(us),type:21,HashJoinNode:177(us),props:〔RelNode:259(us),src,SingleEdgeNode:161(us)type,},rank,total:1938(us),dst,totalrpctime:2328(us),Rel50Bool,vertices:1Rel51Bool,},Rel54Double,{Rel53String,exec:699(us),Rel52Doublehost:store6:9779,〕storagedetail:{},GetNeighborsNode:161(us),{HashJoinNode:152(us),props:〔RelNode:162(us),src,SingleEdgeNode:142(us)type,},rank,total:1735(us),dst,totalrpctime:2328(us),Rel10Int,vertices:1Rel13Double,}Rel12Int,〕Rel14Bool,}Rel15Int,Rel11Int〕,type:17},{type:16,props:〔src,type,rank,dst,Rel06Int,Rel00Bool,Rel03Int,Rel02String,Rel04Double,Rel01String,Rel05Int〕},{type:18,props:〔src,type,rank,dst,Rel23Bool,Rel21Double,Rel24Bool,Rel25Int,Rel22String,Rel26String,Rel20Int〕},{type:19,props:〔src,type,rank,dst,Rel30String,Rel33Int,Rel31String,Rel32Double〕},{props:〔src,type,rank,dst,Rel40Bool,Rel42Double,Rel45String,Rel41String,Rel44Double,Rel43String〕,type:20}〕statProps:exprs:random:falsesteps:1。。1vertexfilter:edgefilter:iftrackpreviouspath:falsefirststepfilter:tagfilter:2Dedup1ver:0,rows:4,execTime:16us,totalTime:18usoutputVar:{colNames:〔vid〕,type:DATASET,name:Dedup2}inputVar:VAR11PassThrough3ver:0,rows:0,execTime:14us,totalTime:19usoutputVar:{colNames:〔vid〕,type:DATASET,name:VAR1}inputVar:3Startver:0,rows:0,execTime:2us,totalTime:29usoutputVar:{colNames:〔〕,type:DATASET,name:Start3}9AppendVertices8ver:0,rows:0,execTime:46us,totalTime:50usoutputVar:{colNames:〔v2,e,v1〕,type:DATASET,name:AppendVertices9}inputVar:Traverse8space:8dedup:truelimit:1filter:orderBy:〔〕src:nonedirectdst(。e)props:〔{props:〔tag〕,tagId:13},{props:〔tag〕,tagId:12},{tagId:11,props:〔tag〕},{tagId:9,props:〔tag〕},{tagId:10,props:〔tag〕},{tagId:14,props:〔tag〕},{tagId:15,props:〔tag〕}〕exprs:vertexfilter:iftrackpreviouspath:true8Traverse7{outputVar:{ver:0,rows:0,execTime:4867us,totalTime:9173uscolNames:〔step〔2〕:〔v2,{eexec:488(us),〕,host:store2:9779,type:DATASET,storagedetail:{name:Traverse8GetNeighborsNode:371(us),}HashJoinNode:261(us),inputVar:Argument7RelNode:371(us),space:8SingleEdgeNode:243(us)dedup:true},limit:1total:1509(us),filter:totalrpctime:1948(us),orderBy:〔〕vertices:2src:id(。v2)},edgeTypes:〔〕{edgeDirection:OUTEDGEexec:331(us),vertexProps:host:store3:9779,edgeProps:〔storagedetail:{{GetNeighborsNode:86(us),type:21,HashJoinNode:63(us),props:〔RelNode:86(us),src,SingleEdgeNode:54(us)type,},rank,total:1208(us),dst,totalrpctime:1948(us),Rel50Bool,vertices:1Rel51Bool,},Rel54Double,{Rel53String,exec:686(us),Rel52Doublehost:store5:9779,〕storagedetail:{},GetNeighborsNode:311(us),{HashJoinNode:254(us),props:〔RelNode:311(us),src,SingleEdgeNode:237(us)type,},rank,total:1532(us),dst,totalrpctime:1948(us),Rel10Int,vertices:2Rel13Double,},Rel12Int,{Rel14Bool,exec:467(us),Rel15Int,host:store6:9779,Rel11Intstoragedetail:{〕,GetNeighborsNode:173(us),type:17HashJoinNode:124(us),},RelNode:173(us),{SingleEdgeNode:115(us)type:16,},props:〔total:1368(us),src,totalrpctime:1948(us),type,vertices:1rank,},dst,{Rel06Int,exec:494(us),Rel00Bool,host:store1:9779,Rel03Int,storagedetail:{Rel02String,GetNeighborsNode:238(us),Rel04Double,HashJoinNode:147(us),Rel01String,RelNode:239(us),Rel05IntSingleEdgeNode:137(us)〕},},total:1246(us),{totalrpctime:1948(us),type:18,vertices:1props:〔}src,〕type,step〔3〕:〔rank,{dst,exec:643(us),Rel23Bool,host:store5:9779,Rel21Double,storagedetail:{Rel24Bool,GetNeighborsNode:432(us),Rel25Int,HashJoinNode:296(us),Rel22String,RelNode:433(us),Rel26String,SingleEdgeNode:272(us)Rel20Int},〕total:1556(us),},totalrpctime:1913(us),{vertices:3type:19,},props:〔{src,exec:581(us),type,host:store6:9779,rank,storagedetail:{dst,GetNeighborsNode:255(us),Rel30String,HashJoinNode:162(us),Rel33Int,RelNode:256(us),Rel31String,SingleEdgeNode:151(us)Rel32Double},〕total:1612(us),},totalrpctime:1913(us),{vertices:1type:20,},props:〔{src,exec:373(us),type,host:store2:9779,rank,storagedetail:{dst,GetNeighborsNode:124(us),Rel40Bool,HashJoinNode:93(us),Rel42Double,RelNode:124(us),Rel45String,SingleEdgeNode:84(us)Rel41String,},Rel44Double,total:1285(us),Rel43Stringtotalrpctime:1913(us),〕。。。