lingvisa
(Martin Min)
June 8, 2021, 11:03pm
1
My graph export code has been working well, until now a new node property 'graphEmbedding' of 256 dimension is added to each node. The relevant export code is below:
Export node ...
MATCH (m:Product)
WITH collect(DISTINCT m) AS M
CALL apoc.export.csv.data( M, [], null, {stream:true, batchSize:2000000}) YIELD data
WITH apoc.text.replace(data, '(?:,"_start","_end","_type"|,,,)(?=\n)', '') AS mdata
RETURN mdata
The exception is:
File "/Users/congminmin/.venv/wbkg/lib/python3.8/site-packages/neo4j/work/result.py", line 227, in __iter__
self._connection.fetch_message() # Receive at least one message from the server, if available.
File "/Users/congminmin/.venv/wbkg/lib/python3.8/site-packages/neo4j/work/result.py", line 62, in inner
func(*args, **kwargs)
File "/Users/congminmin/.venv/wbkg/lib/python3.8/site-packages/neo4j/io/_bolt4.py", line 271, in fetch_message
response.on_failure(summary_metadata or {})
File "/Users/congminmin/.venv/wbkg/lib/python3.8/site-packages/neo4j/io/_common.py", line 183, in on_failure
raise Neo4jError.hydrate(**metadata)
neo4j.exceptions.DatabaseError: {code: Neo.DatabaseError.General.UnknownError} {message: This encoder depends on java.lang.StringCoding, which failed to load or apply: Index 16384 out of bounds for length 16384}
I am on MacPro and use Neo4j 4.2.6. 4.0.4 has the same issue. Because the graphEmbedding is a float vector of length 256, probably that's the reason causing the error: " Index 16384 out of bounds for length 16384"
Once I remove the graphEmbedding property from the graph, the export code runs well.
I used the method introduced here to create the embedding:
This guide covers graph embeddings in the Neo4j Data Science Library, like node2Vec, GraphSAGE, and Random Projection.
lingvisa
(Martin Min)
June 9, 2021, 12:42am
2
I registered an issue here:
opened 12:41AM - 09 Jun 21 UTC
closed 01:17PM - 12 Jul 21 UTC
bug
team-cypher
team-drivers
Neo4j 4.6 Community/Neo4j Driver 4.3.1/Python 3.8
Neo4j 4.0.4 has the same is… sue. The description of the issue is here:
https://community.neo4j.com/t/java-string-exception-thrown-when-exporting-data/39556
The log message from neo4j.log:
```
2021-06-09 00:34:40.901+0000 INFO ======== Neo4j 4.2.6 ========
106 2021-06-09 00:34:48.795+0000 INFO Performing postInitialization step for component 'security-users' with version 2 and status CURRENT
107 2021-06-09 00:34:48.795+0000 INFO Updating the initial password in component 'security-users'
108 2021-06-09 00:34:55.331+0000 INFO Called db.clearQueryCaches(): Query cache already empty.
109 2021-06-09 00:34:55.425+0000 INFO Bolt enabled on 0.0.0.0:7687.
110 2021-06-09 00:34:56.166+0000 INFO Remote interface available at http://localhost:7474/
111 2021-06-09 00:34:56.166+0000 INFO Started.
112 ERROR StatusLogger An exception occurred processing Appender log
113 java.lang.NegativeArraySizeException: -1866446089
114 at java.base/java.lang.StringCoding.encodeUTF8_UTF16(StringCoding.java:910)
115 at java.base/java.lang.StringCoding.encodeUTF8(StringCoding.java:885)
116 at java.base/java.lang.StringCoding.encode(StringCoding.java:415)
117 at java.base/java.lang.String.getBytes(String.java:941)
118 at org.neo4j.logging.shaded.log4j.core.layout.AbstractStringLayout.getBytes(AbstractStringLayout.java:218)
119 at org.neo4j.logging.shaded.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:308)
120 at org.neo4j.logging.shaded.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:210)
121 at org.neo4j.logging.shaded.log4j.core.layout.AbstractLayout.encode(AbstractLayout.java:37)
122 at org.neo4j.logging.shaded.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:197)
123 at org.neo4j.logging.shaded.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
124 at org.neo4j.logging.shaded.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
125 at org.neo4j.logging.shaded.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:312)
126 at org.neo4j.logging.shaded.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
127 at org.neo4j.logging.shaded.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
128 at org.neo4j.logging.shaded.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
129 at org.neo4j.logging.shaded.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
130 at org.neo4j.logging.shaded.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
131 at org.neo4j.logging.shaded.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
132 at org.neo4j.logging.shaded.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
133 at org.neo4j.logging.shaded.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
134 at org.neo4j.logging.shaded.log4j.core.config.DefaultReliabilityStrategy.log(DefaultReliabilityStrategy.java:63)
135 at org.neo4j.logging.shaded.log4j.core.Logger.log(Logger.java:161)
136 at org.neo4j.logging.shaded.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
137 at org.neo4j.logging.shaded.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
138 at org.neo4j.logging.shaded.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
139 at org.neo4j.logging.shaded.log4j.spi.AbstractLogger.printf(AbstractLogger.java:2125)
140 at org.neo4j.logging.log4j.Log4jLog.error(Log4jLog.java:138)
141 at org.neo4j.bolt.v3.messaging.BoltResponseMessageWriterV3.consumeField(BoltResponseMessageWriterV3.java:160)
142 at org.neo4j.bolt.v41.messaging.BoltResponseMessageWriterV41.consumeField(BoltResponseMessageWriterV41.java:111)
143 at org.neo4j.bolt.v3.messaging.ResultHandler$RecordWritingBoltResultRecordConsumer.consumeField(ResultHandler.java:67)
144 at org.neo4j.bolt.runtime.statemachine.impl.BoltAdapterSubscriber.onField(BoltAdapterSubscriber.java:55)
145 at org.neo4j.fabric.bolt.BoltQueryExecutionImpl$QueryExecutionImpl.publishFields(BoltQueryExecutionImpl.java:212)
146 at org.neo4j.fabric.bolt.BoltQueryExecutionImpl$QueryExecutionImpl.request(BoltQueryExecutionImpl.java:189)
147 at org.neo4j.bolt.runtime.AbstractCypherAdapterStream.handleRecords(AbstractCypherAdapterStream.java:104)
148 at org.neo4j.bolt.v3.messaging.ResultHandler.onPullRecords(ResultHandler.java:41)
149 at org.neo4j.bolt.v4.messaging.PullResultConsumer.consume(PullResultConsumer.java:42)
150 at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State.consumeResult(TransactionStateMachine.java:511)
151 at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$2.streamResult(TransactionStateMachine.java:355)
152 at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.streamResult(TransactionStateMachine.java:94)
153 at org.neo4j.bolt.v4.runtime.InTransactionState.processStreamResultMessage(InTransactionState.java:73)
154 at org.neo4j.bolt.v4.runtime.AbstractStreamingState.processUnsafe(AbstractStreamingState.java:49)
155 at org.neo4j.bolt.v4.runtime.InTransactionState.processUnsafe(InTransactionState.java:60)
156 at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48)
157 at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:143)
158 at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:91)
159 at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:90)
160 at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:147)
161 at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:236)
162 at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:171)
163 at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:161)
164 at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:246)
165 at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:229)
166 at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
167 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
168 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
169 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
170 at java.base/java.lang.Thread.run(Thread.java:834)
171 2021-06-09 00:36:53.447+0000 ERROR Client triggered an unexpected error [Neo.DatabaseError.General.UnknownError]: This encoder depends on java.lang.StringCoding, which failed to load or apply: Index 16384 out of bounds for length 1638 4, reference 4bead93c-40ab-4012-a086-c46cafe51bb0.
```