-
Notifications
You must be signed in to change notification settings - Fork 172
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
Node crash after node restart #1390
Comments
Give it more memory, ie. run the |
1024m not help((
|
@bekman1 @pragmaxim on MacOS, pure-Java port of LevelDB is used (as native LevelDB via JNI had problems with crashing all the time). If error is about the same (and having scorex.db.LDBVersionedStore.cleanStart(LDBVersionedStore.scala:253 in its stacktrace) all the time,you can try following setting ergo { |
added in ergo.conf keepVersions = 20 , started java with 4GB heap, but also got OutOfMemory error. But this time error come at this place: 10:16:54.223 INFO [tor.default-dispatcher-18] s.c.n.NetworkController - Connecting to peer: PeerInfo(PeerSpec(unknown,Version(0,0,1),unknown-/209.217.206.254:9030,Some(/209.217.206.254:9030),List()),0,None) Uncaught error from thread [ergoref-akka.actor.default-dispatcher-17]: Java heap space, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[ergoref] |
The mac database has been replaced, please open a new issue if the problem persists in the latest node release. |
I seem to have this same or similar problem using ARM in particular. x86 machines with similar specs (2core, 4gb ram) can sync and run just fine. I stuck to x86, but figured I should at least document the instance: |
The problem is in pure-Java LevelDB implementation which is nightmare it seems |
The Github repo does seem to have a seemingly similar 2020 open issue. Would it be appropriate to mention this? |
Yes, could be related, thanks! |
I know nothing of ergo, but intrigued with the issue been reported to Java Leveldb. I made my some testing on ergo docker image cdd2cdc38420 to reproduce the issue. To produce the OutOfMemoryError I did the following:
By inspecting the heap dump, 98% of the space used by a leveldb object WriteBatchImpl, retained by Leveldb jni and pure Java have different memory model/consumption so using native implementation could also produce memory issues, just eventually later. |
@kushti @pragmaxim Is there a way to curve what @pcmind found? - I'm wondering if this would solve the sync issues I've been hearing about (mostly PI syncing issues). |
Hi guys, i set a Ergo node on my MacOS BigSur 11.4
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
Ergo Protocol Reference Client 4.0.12
By first node start all works ok, but if i stop the node and run again, the node start to sync, get some peer connection, but after short time i get my computer overloaded and this java error:
Uncaught error from thread [ergoref-akka.actor.default-dispatcher-5]: Java heap space, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[ergoref] java.lang.OutOfMemoryError: Java heap space at java.base/java.util.Arrays.copyOf(Unknown Source) at java.base/java.util.ArrayList.grow(Unknown Source) at java.base/java.util.ArrayList.grow(Unknown Source) at java.base/java.util.ArrayList.add(Unknown Source) at java.base/java.util.ArrayList.add(Unknown Source) at org.iq80.leveldb.impl.WriteBatchImpl.delete(WriteBatchImpl.java:70) at org.iq80.leveldb.impl.WriteBatchImpl.delete(WriteBatchImpl.java:31) at scorex.db.LDBVersionedStore.$anonfun$cleanStart$1(LDBVersionedStore.scala:254) at scorex.db.LDBVersionedStore.$anonfun$cleanStart$1$adapted(LDBVersionedStore.scala:253) at scorex.db.LDBVersionedStore$$Lambda$2638/0x00000008008f8840.apply(Unknown Source) at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:74) at scorex.db.LDBVersionedStore.cleanStart(LDBVersionedStore.scala:253) at scorex.db.LDBVersionedStore.update(LDBVersionedStore.scala:228) at scorex.crypto.authds.avltree.batch.VersionedLDBAVLStorage.$anonfun$update$1(VersionedLDBAVLStorage.scala:60) at scorex.crypto.authds.avltree.batch.VersionedLDBAVLStorage$$Lambda$2632/0x00000008008b8840.apply$mcV$sp(Unknown Source) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at scala.util.Try$.apply(Try.scala:213) at scorex.crypto.authds.avltree.batch.VersionedLDBAVLStorage.update(VersionedLDBAVLStorage.scala:52) at scorex.crypto.authds.avltree.batch.PersistentBatchAVLProver.generateProofAndUpdateStorage(PersistentBatchAVLProver.scala:25) at org.ergoplatform.nodeView.state.UtxoState.$anonfun$applyModifier$2(UtxoState.scala:113) at org.ergoplatform.nodeView.state.UtxoState$$Lambda$2617/0x000000080090d840.apply(Unknown Source) at scala.util.Success.$anonfun$map$1(Try.scala:255) at scala.util.Success.map(Try.scala:213) at org.ergoplatform.nodeView.state.UtxoState.$anonfun$applyModifier$1(UtxoState.scala:110) at org.ergoplatform.nodeView.state.UtxoState$$Lambda$1973/0x0000000800ba1040.apply(Unknown Source) at scala.util.Success.flatMap(Try.scala:251) at org.ergoplatform.nodeView.state.UtxoState.applyModifier(UtxoState.scala:109) at org.ergoplatform.nodeView.state.UtxoState.applyModifier(UtxoState.scala:34) at scorex.core.NodeViewHolder.$anonfun$applyState$1(NodeViewHolder.scala:249) at scorex.core.NodeViewHolder$$Lambda$1929/0x0000000800b8e040.apply(Unknown Source) at scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:162)
Unlock wallet is also imposible after node restart.
Whats wrong? Regards
The text was updated successfully, but these errors were encountered: