Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neo4j non exists function #10617

Closed
pilipyukaaa opened this issue May 30, 2024 · 1 comment
Closed

Neo4j non exists function #10617

pilipyukaaa opened this issue May 30, 2024 · 1 comment
Labels
bug Bug report

Comments

@pilipyukaaa
Copy link

Hello, i have this error when im trying get lineage from datahub
2024-05-27 17:11:57,171 [ForkJoinPool.commonPool-worker-5] ERROR c.l.d.g.e.DataHubDataFetcherExceptionHandler:45 - Failed to execute
java.util.concurrent.CompletionException: java.lang.RuntimeException: Failed to fetch lineage for {}
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.RuntimeException: Failed to fetch lineage for {}
at com.linkedin.datahub.graphql.resolvers.load.EntityLineageResultResolver.lambda$get$1(EntityLineageResultResolver.java:103)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
... 6 common frames omitted
Caused by: org.neo4j.driver.exceptions.ClientException: There is no procedure with the name apoc.path.spanningTree registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.
at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:110)
at org.neo4j.driver.internal.InternalSession.run(InternalSession.java:65)
at org.neo4j.driver.internal.InternalSession.run(InternalSession.java:50)
at org.neo4j.driver.internal.AbstractQueryRunner.run(AbstractQueryRunner.java:34)
at org.neo4j.driver.internal.AbstractQueryRunner.run(AbstractQueryRunner.java:39)
at com.linkedin.metadata.graph.neo4j.Neo4jGraphService.runQuery(Neo4jGraphService.java:758)
at com.linkedin.metadata.graph.neo4j.Neo4jGraphService.getLineage(Neo4jGraphService.java:293)
at com.linkedin.metadata.graph.GraphService.getLineage(GraphService.java:145)
at com.linkedin.metadata.graph.SiblingGraphService.getLineage(SiblingGraphService.java:77)
at com.linkedin.datahub.graphql.resolvers.load.EntityLineageResultResolver.lambda$get$1(EntityLineageResultResolver.java:77)
... 7 common frames omitted
Suppressed: org.neo4j.driver.internal.util.ErrorUtil$InternalExceptionCause: null
at org.neo4j.driver.internal.util.ErrorUtil.newNeo4jError(ErrorUtil.java:78)
at org.neo4j.driver.internal.async.inbound.InboundMessageDispatcher.handleFailureMessage(InboundMessageDispatcher.java:113)
at org.neo4j.driver.internal.messaging.common.CommonMessageReader.unpackFailureMessage(CommonMessageReader.java:64)
at org.neo4j.driver.internal.messaging.common.CommonMessageReader.read(CommonMessageReader.java:48)
at org.neo4j.driver.internal.async.inbound.InboundMessageHandler.channelRead0(InboundMessageHandler.java:80)
at org.neo4j.driver.internal.async.inbound.InboundMessageHandler.channelRead0(InboundMessageHandler.java:36)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
at org.neo4j.driver.internal.async.inbound.MessageDecoder.channelRead(MessageDecoder.java:42)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:840)

can you please help me find a way for fix this problem?

@pilipyukaaa pilipyukaaa added the bug Bug report label May 30, 2024
@pilipyukaaa
Copy link
Author

Siddique Bagwan
APP 10 days ago
Try below detail:
The error message indicates that the apoc.path.spanningTree procedure is not available in your Neo4j database instance. This procedure is part of the APOC (Awesome Procedures On Cypher) library, which is a set of utilities and procedures that extend the capabilities of Neo4j.Steps to Resolve the Issue:⁣1. Ensure APOC is Installed⁣:
Make sure that the APOC library is installed in your Neo4j instance. You can download the APOC jar file from the official APOC GitHub repository and place it in the plugins directory of your Neo4j installation.2. Enable APOC in Neo4j Configuration⁣:
You need to enable the APOC procedures in your Neo4j configuration file (neo4j.conf). Add the following lines to the configuration file:
dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*
3. Restart Neo4j⁣:
After making the above changes, restart your Neo4j instance to apply the new configuration.4. Verify APOC Installation⁣:
You can verify if the APOC procedures are available by running the following Cypher query in the Neo4j browser:
CALL apoc.help('spanningTree')
This should return information about the apoc.path.spanningTree procedure if it is correctly installed and enabled.Additional Context:⁣
According to this pull request, the apoc.path.spanningTree procedure was introduced as a more efficient alternative to the existing algorithm for lineage queries in DataHub's Neo4j service. This change was necessary to address performance issues when dealing with large graphs.Would you like more detailed instructions on any of these steps?Sources:⁣

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug report
Projects
None yet
Development

No branches or pull requests

1 participant