cancel
Showing results for 
Search instead for 
Did you mean: 

Label Propagation and Weakly Connected Components stuck at loading even though log says 'Finished'

cuneyttyler
Node Clone

I have below queries. Even though log says 'Finished', Neo4j browser stucks at loading and doesn't show the results.

 

 

CALL gds.labelPropagation.stream( 'entityGraph', {concurrency: 4} ) YIELD nodeId, communityId RETURN nodeId, communityId

 

 

 

 

CALL gds.wcc.stream(
  'entityGraph'
)
YIELD
    nodeId,
    componentId
RETURN nodeId, componentId

 

 

I have a graph with about 1 billion relationships and 15 million nodes. What might be the cause of this?

When I stop the execution from the browser below exception is thrown :

022-06-13 18:10:59.612+0000 DEBUG [o.n.b.v.m.BoltResponseMessageWriterV3] Encoding a fatal failure message to send. Message: FAILURE Invalid Message 'PULL Map{qid -> Long(0), n -> Long(1000)}' cannot be handled by a session in the READY state.
2022-06-13 18:10:59.613+0000 ERROR [o.n.b.r.DefaultBoltConnection] Protocol breach detected in bolt session 'bolt-2'.
org.neo4j.bolt.runtime.BoltProtocolBreachFatality: Message 'PULL Map{qid -> Long(0), n -> Long(1000)}' cannot be handled by a session in the READY state.
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:159) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240) ~[neo4j-bolt-4.4.7.jar:4.4.7]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.75.Final.jar:4.1.75.Final]
	at java.lang.Thread.run(Thread.java:829) [?:?]
1 REPLY 1

I think this is probably an issue with browser formatting/displaying the streaming results for 15M nodes.

If you want to check what the actual status of execution is, I would try gds.beta.listProgress to confirm that the operations finished. If you want to inspect the results, instead of streaming them in browser, I would try running stats mode (to understand the distribution).

If you need to get the results for a downstream task, I'd recommend using the python client or mutating the graph and exporting to CSV.