[BUG] IC14无法用Cypher执行
まだ誰も着手していません。
評価
調査の方向性
失敗しているクエリは ic14.cypher です。まずそれを再現し、GraphRowCountHandler.java の 225 行目を調べてください。そこでは、stack trace が GraphLogicalUnfold の行数推定の失敗を報告しています。GraphPlanner.java と QueryCache.java を通じてプランニングを追跡してください。IC14 Cypher クエリが LOGICAL_PLAN_BUILD_FAILED なしで実行されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
执行查询文件: ic14.cypher
查询内容:
MATCH all ShortestPath((person1:PERSON { id: 32985348834605L })-[path:KNOWS0..]-(person2:PERSON { id: 4398046511592L }))
WITH path, gs.function.relationships(path) as rels_in_path
UNWIND rels_in_path as rel
WITH path, gs.function.startNode(rel) as rel0, gs.function.endNode(rel) as rel1
OPTIONAL MATCH (rel0:PERSON)<-[:HASCREATOR]-(n)-[:REPLYOF]-(m)-[:HASCREATOR]->(rel1:PERSON)
With path,
CASE WHEN labels(m) = labels(n) OR n is null THEN 0 ELSE 1 END as ra,
CASE WHEN labels(m) <> labels(n) OR n is null THEN 0 ELSE 1 END as rb
With path, gs.function.nodes(path) as nodes_in_path, SUM(ra) AS weight1Count, SUM(rb) as weight2Count
UNWIND nodes_in_path as node
WITH path, COLLECT(node.id) as personIdsInPath, weight1Count, weight2Count
RETURN personIdsInPath, (weight1Count + gs.function.toFloat(weight2Count) / 2) AS pathWeight
ORDER BY pathWeight DESC;
查询执行失败: {code: Neo.DatabaseError.General.UnknownError} {message: com.google.common.util.concurrent.UncheckedExecutionException: com.alibaba.graphscope.common.exception.FrontendException: ErrorCode: LOGICAL_PLAN_BUILD_FAILED
Message: can not estimate row count for the node=rel#10344:GraphLogicalUnfold.(input=GraphLogicalProject#10342,key=rels_in_path,alias=rel)
EC: 03-0106
stacktrace: java.lang.IllegalArgumentException: can not estimate row count for the node=rel#10344:GraphLogicalUnfold.(input=GraphLogicalProject#10342,key=rels_in_path,alias=rel)
at com.alibaba.graphscope.common.ir.meta.glogue.calcite.handler.GraphRowCountHandler.getRowCount(GraphRowCountHandler.java:225)
at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:258)
at org.apache.calcite.rel.AbstractRelNode.computeSelfCost(AbstractRelNode.java:232)
at com.alibaba.graphscope.common.ir.meta.glogue.calcite.handler.GraphNonCumulativeCostHandler.getNonCumulativeCost(GraphNonCumulativeCostHandler.java:92)
at org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:331)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:62)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.planLogical(GraphPlanner.java:177)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.lambda$plan$0(GraphPlanner.java:151)
at com.alibaba.graphscope.common.utils.ClassUtils.callExceptionWithDetails(ClassUtils.java:54)
at com.alibaba.graphscope.common.utils.ClassUtils.callException(ClassUtils.java:48)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.plan(GraphPlanner.java:151)
at com.alibaba.graphscope.common.ir.tools.QueryCache.lambda$new$0(QueryCache.java:52)
at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:169)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
at com.alibaba.graphscope.common.ir.tools.QueryCache.get(QueryCache.java:124)
at com.alibaba.graphscope.cypher.executor.GraphQueryExecutor.run(GraphQueryExecutor.java:146)
at org.neo4j.fabric.bolt.BoltFabricDatabaseService$BoltTransactionImpl.executeQuery(BoltFabricDatabaseService.java:186)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractTransactionStateMachineSPI$AbstractBoltResultHandle.start(AbstractTransactionStateMachineSPI.java:128)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State.startExecution(TransactionStateMachine.java:530)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$1.run(TransactionStateMachine.java:213)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.run(TransactionStateMachine.java:89)
at org.neo4j.bolt.transaction.StatementProcessorTxManager.runProgram(StatementProcessorTxManager.java:103)
at org.neo4j.bolt.v4.runtime.ReadyState.processRunMessage(ReadyState.java:80)
at org.neo4j.bolt.v44.runtime.ReadyState.processRunMessage(ReadyState.java:93)
at org.neo4j.bolt.v3.runtime.ReadyState.processUnsafe(ReadyState.java:62)
at org.neo4j.bolt.v4.runtime.ReadyState.processUnsafe(ReadyState.java:53)
at org.neo4j.bolt.v43.runtime.ReadyState.processUnsafe(ReadyState.java:56)
at org.neo4j.bolt.v44.runtime.ReadyState.processUnsafe(ReadyState.java:48)
at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:154)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102)
at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93)
at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
}
IC14无法执行
- 主要言語
- C++
- スター
- 3.6k
- フォーク
- 470
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
alibaba/GraphScope のほかの issue
-
[BUG] Failed archive extraction deletes the dataset cache対応中かも @dajiaohuang が 6 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
alibaba/GraphScope#4674 ·
-
stale
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
alibaba/GraphScope#4655 · コメント 2 件 ·
-
stale
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
alibaba/GraphScope#4654 · コメント 2 件 ·
-
stale
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
alibaba/GraphScope#4647 · コメント 3 件 ·
-
stale
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
alibaba/GraphScope#4637 · コメント 1 件 ·
alibaba/GraphScope の issue をすべて見る
似ている issue
-
good first issue invalid
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
DanielJerolm/gpcc#74 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
patrick-hudson/put.gd-desktop#808 ·
メンテナーはふだん 1 日以内に返信
-
DPI change is not fully handled in the cascading window on Windows対応中かも @yukawa が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 4 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
enhancement Ready for final check
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
mpogue2/SquareDesk#1818 · コメント 1 件 ·