[BUG] IC14无法用Cypher执行
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
Línea de trabajo
La consulta que falla es ic14.cypher; empieza por reproducirla e inspecciona GraphRowCountHandler.java en la línea 225, donde el stack trace informa de un error en la estimación del número de filas de GraphLogicalUnfold. Sigue la planificación a través de GraphPlanner.java y QueryCache.java. Se considera terminado cuando la consulta Cypher IC14 se ejecuta sin LOGICAL_PLAN_BUILD_FAILED.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
执行查询文件: 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无法执行
- Lenguaje dominante
- C++
- Estrellas
- 3.6k
- Forks
- 470
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de alibaba/GraphScope
-
[BUG] Failed archive extraction deletes the dataset cachePosiblemente ocupada @dajiaohuang la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
alibaba/GraphScope#4674 ·
-
Please add multi-tenancyAbiertostale
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
alibaba/GraphScope#4655 · 2 comentarios ·
-
stale
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
alibaba/GraphScope#4654 · 2 comentarios ·
-
stale
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
alibaba/GraphScope#4647 · 3 comentarios ·
-
stale
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
alibaba/GraphScope#4637 · 1 comentario ·
Todos los issues de alibaba/GraphScope
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
enhancement Ready for final check
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
mpogue2/SquareDesk#1818 · 1 comentario ·
-
launch-client --save-creds creates creds/<account>/ with mode 755, not 700Posiblemente ocupada @metis-sprock la tomó hoy. Abiertobacklog bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
EchoTools/nevr-runtime#1471 ·
Los mantenedores suelen responder en 1 día
-
docs: Page not found?Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
iamankushpandit/Gume#231 ·
Los mantenedores suelen responder en 1 día