neo4j / graph-data-science

Source code for the Neo4j Graph Data Science library of graph algorithms.
https://neo4j.com/docs/graph-data-science/current/
Other
596 stars 157 forks source link

`gds.alpha.sllpa.stream` : graph does not support `write` execution mode. #276

Closed yushangdi closed 11 months ago

yushangdi commented 11 months ago

Describe the bug

I'm trying to run gds.alpha.sllpa.stream and got error: The provided graph does not support write execution mode. Why does the stream mode requires the graph to support write mode? How can I allow the graph to support write mode? I'm creating my graph using gds.alpha.graph.construct. Thanks!

Traceback (most recent call last): File "cluster.py", line 154, in runAll runNeo4j(clusterer, graph, thread, config + ', num_rounds: ' + str(i), weighted, out_prefix) File "cluster.py", line 68, in runNeo4j out_time = cluster_neo4j.runNeo4j(use_input_graph, graph, alg_name, thread, config, weighted, out_clustering) File "/home/ubuntu/ParClusterers/cluster_neo4j.py", line 199, in runNeo4j res = gds.alpha.sllpa.stream(G, stream_kwargs) File "/home/ubuntu/.local/lib/python3.8/site-packages/graphdatascience/algo/algo_proc_runner.py", line 35, in call return self._run_procedure(G, config) File "/home/ubuntu/.local/lib/python3.8/site-packages/graphdatascience/graph/graph_type_check.py", line 18, in wrapper return func(self, G, *args, *kwargs) File "/home/ubuntu/.local/lib/python3.8/site-packages/graphdatascience/algo/algo_proc_runner.py", line 23, in _run_procedure return self._query_runner.run_query_with_logging(query, params) File "/home/ubuntu/.local/lib/python3.8/site-packages/graphdatascience/query_runner/neo4j_query_runner.py", line 89, in run_query_with_logging raise future.exception() # type: ignore File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(self.args, self.kwargs) File "/home/ubuntu/.local/lib/python3.8/site-packages/graphdatascience/query_runner/neo4j_query_runner.py", line 62, in run_query return result.to_df() File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/work/result.py", line 724, in to_df df = pd.DataFrame(self.values(), columns=self._keys) File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/work/result.py", line 579, in values return [record.values(keys) for record in self] File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/work/result.py", line 579, in return [record.values(keys) for record in self] File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/work/result.py", line 251, in iter self._connection.fetch_message() File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/io/_common.py", line 180, in inner func(*args, kwargs) File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/io/_bolt.py", line 803, in fetch_message res = self._process_message(tag, fields) File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/io/_bolt5.py", line 360, in _process_message response.on_failure(summary_metadata or {}) File "/home/ubuntu/.local/lib/python3.8/site-packages/neo4j/_sync/io/_common.py", line 247, in on_failure raise Neo4jError.hydrate(metadata) neo4j.exceptions.ClientError: {code: Neo.ClientError.Procedure.ProcedureCallFailed} {message: Failed to invoke procedure gds.alpha.sllpa.stream: Caused by: java.lang.IllegalArgumentException: The provided graph does not support write execution mode.}

To Reproduce

GDS version: 2.4.0 Neo4j version: 5.7.0 Operating system: (for example Windows 95/Ubuntu 16.04) Ubuntu 22

vnickolov commented 11 months ago

@yushangdi thank you for reporting this, we will look into it and will get back to you.

vnickolov commented 11 months ago

@yushangdi we have successfully reproduced the issue and will be working on a fix, we'll keep you updated.

vnickolov commented 11 months ago

@yushangdi we have provided a fix for the issue in GDS 2.4.3, I will close this, feel free to open a new one if the problem persists.