Open cybersam opened 7 months ago
We tried to reproduce this and pipeline creation worked with gds 2.5.3 and Neo4j 5.13. It worked all right creating a linkprediction pipeline on a fresh db. It is surprising this caused a bug as its a basic operation that we have test for. Are you able to run other gds algorithms such as for example pageRank?
Could you attach the neo4j logs including debug log?
I have attached the debug and neo4j logs.
I also tried the following, but still got the same error:
bloom-plugin-5.x-2.10.0.jar
and neo4j-graph-data-science-2.5.3.jar
.CALL gds.beta.pipeline.nodeClassification.create("pipe-nc")
in the Browser.However, all the PageRank algorithm examples in the docs succeeded and produced the expected results.
In case the OS and its environment is related to this issue: I am using a standalone EE instance running on AWS EC2 with an Amazon Linux OS (AMI ID: ami-0cd7323ab3e63805f).
I have created another AWS EC2 instance running neo4j 5.11.0 and GDS 2.5.1, in which both CALL gds.beta.pipeline.linkPrediction.create("foo")
and gds.lp_pipe("foo")
succeed.
The same with Neo4j 5.11.0 and GDS 2.5.3.
However, they fail (in the same way as before) with Neo4j 5.12.0 and GDS 2.5.0. So this seems to imply that the root issue is actually in Neo4j 5.12.0 onwards.
Thanks for the info @cybersam ! What JVM are you using?
...$ java -version openjdk version "17.0.9" 2023-10-17 LTS OpenJDK Runtime Environment Corretto-17.0.9.8.1 (build 17.0.9+8-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.9.8.1 (build 17.0.9+8-LTS, mixed mode, sharing)
[ec2-user@ip-172-31-13-182 ~]$ java -version openjdk version "17.0.9" 2023-10-17 LTS OpenJDK Runtime Environment Corretto-17.0.9.8.1 (build 17.0.9+8-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.9.8.1 (build 17.0.9+8-LTS, mixed mode, sharing)
Great, thank you! We're looking into this
Any updates or recommendations for this issue? Ideally not involving downgrading the Neo4j version. Thank you
@cybersam @lukepereira
The issue was with the Cypher runtime but should be fixed as of Neo4j DB version 5.16. Would you be able to try your code with this version?
Describe the bug Link prediction operations (e.g.,
.create
,.addNodeProperty
) fail, using GDS 2.5.1 and 2.5.3.To Reproduce A. Execute either of these using the Python GDS client:
pipe = gds.lp_pipe("foo")
, orgds.run_cypher("""CALL gds.beta.pipeline.linkPrediction.create("foo")""")
B. Execute this in the Neo4j Browser:
CALL gds.beta.pipeline.linkPrediction.create("foo")
GDS version: 2.5.1, also 2.5.3 Neo4j version: standalone EE 5.13.0 Operating system: Amazon Linux (AMI ID: ami-0cd7323ab3e63805f)
Steps to reproduce the behavior (when using the Python GDS client):
Expected behavior The pipeline is created AND results are returned.
Observed behavior The call fails with
Expected positive long value, got -24
error message. But it appears the pipeline is actually created.Here is error, when executing
pipe = gds.lp_pipe("foo")
Additional context
.create
even when it throws the error, I tried to use the Cypher GDS API on the Browser to call.addNodeProperty
on the pipeline, but that also gave me the "Expected positive long value, got -24" error.