ScorexFoundation / AVLIODB

Authenticated AVL tree implementation with IODB persistence
6 stars 2 forks source link

OOM on multiple inserts #25

Closed catena2w closed 6 years ago

mike-aksarin commented 6 years ago

Here is stacktrace from Ergo test after generating genesis state. This could be reproduced with a single line: ErgoState.generateGenesisUtxoState(createTempDir, None)

This was used in UtxoStateSpecification applyModifier() - valid full block after invalid one for example.

Testing started at 17:34 ...
/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=58529:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Users/mike/Library/Application Support/IdeaIC2018.1/Scala/lib/runners.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/tools.jar:/Users/mike/dev/ergo/target/scala-2.12/it-classes:/Users/mike/dev/ergo/target/scala-2.12/classes:/Users/mike/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.2.3.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/avl-iodb_2.12/jars/avl-iodb_2.12-0.2.13.jar:/Users/mike/.ivy2/cache/org.bouncycastle/bcprov-jdk15on/jars/bcprov-jdk15on-1.59.jar:/Users/mike/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.2.3.jar:/Users/mike/.ivy2/cache/com.chuusai/shapeless_2.12/bundles/shapeless_2.12-2.3.2.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.9.0.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.dataformat/jackson-dataformat-properties/bundles/jackson-dataformat-properties-2.9.2.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.datatype/jackson-datatype-guava/bundles/jackson-datatype-guava-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/bundles/jackson-jaxrs-base-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/bundles/jackson-jaxrs-json-provider-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/bundles/jackson-module-jaxb-annotations-2.9.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-paranamer/bundles/jackson-module-paranamer-2.8.4.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-scala_2.12/bundles/jackson-module-scala_2.12-2.8.4.jar:/Users/mike/.ivy2/cache/com.github.jnr/jffi/jars/jffi-1.2.15.jar:/Users/mike/.ivy2/cache/com.github.jnr/jffi/jars/jffi-1.2.15-native.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-constants/jars/jnr-constants-0.9.8.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-enxio/jars/jnr-enxio-0.16.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-ffi/jars/jnr-ffi-2.1.4.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-posix/jars/jnr-posix-3.0.35.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-unixsocket/jars/jnr-unixsocket-0.18.jar:/Users/mike/.ivy2/cache/com.github.jnr/jnr-x86asm/jars/jnr-x86asm-1.0.2.jar:/Users/mike/.ivy2/cache/com.github.nscala-time/nscala-time_2.12.0-RC1/jars/nscala-time_2.12.0-RC1-2.14.0.jar:/Users/mike/.ivy2/cache/com.iheart/ficus_2.12/jars/ficus_2.12-1.4.3.jar:/Users/mike/.ivy2/cache/com.sksamuel.scapegoat/scalac-scapegoat-plugin_2.12/jars/scalac-scapegoat-plugin_2.12-1.3.3.jar:/Users/mike/.ivy2/cache/com.spotify/docker-client/jars/docker-client-8.11.0-shaded.jar:/Users/mike/.ivy2/cache/com.storm-enroute/scalameter-core_2.12/jars/scalameter-core_2.12-0.8.2.jar:/Users/mike/.ivy2/cache/com.storm-enroute/scalameter_2.12/jars/scalameter_2.12-0.8.2.jar:/Users/mike/.ivy2/cache/com.thoughtworks.paranamer/paranamer/bundles/paranamer-2.8.jar:/Users/mike/.ivy2/cache/com.typesafe/config/bundles/config-1.3.2.jar:/Users/mike/.ivy2/cache/com.typesafe/ssl-config-core_2.12/bundles/ssl-config-core_2.12-0.2.2.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-actor_2.12/jars/akka-actor_2.12-2.5.11.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-http-core_2.12/jars/akka-http-core_2.12-10.1.0-RC2.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-http-testkit_2.12/jars/akka-http-testkit_2.12-10.1.1.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-http_2.12/jars/akka-http_2.12-10.1.0-RC2.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-parsing_2.12/jars/akka-parsing_2.12-10.1.0-RC2.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-protobuf_2.12/jars/akka-protobuf_2.12-2.5.11.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-stream-testkit_2.12/jars/akka-stream-testkit_2.12-2.5.11.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-stream_2.12/jars/akka-stream_2.12-2.5.11.jar:/Users/mike/.ivy2/cache/com.typesafe.akka/akka-testkit_2.12/jars/akka-testkit_2.12-2.5.11.jar:/Users/mike/.ivy2/cache/com.typesafe.netty/netty-reactive-streams/jars/netty-reactive-streams-2.0.0.jar:/Users/mike/.ivy2/cache/com.typesafe.scala-logging/scala-logging_2.12/bundles/scala-logging_2.12-3.8.0.jar:/Users/mike/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.9.jar:/Users/mike/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.5.jar:/Users/mike/.ivy2/cache/commons-lang/commons-lang/jars/commons-lang-2.6.jar:/Users/mike/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.2.jar:/Users/mike/.ivy2/cache/commons-net/commons-net/jars/commons-net-3.6.jar:/Users/mike/.ivy2/cache/de.heikoseeberger/akka-http-circe_2.12/jars/akka-http-circe_2.12-1.19.0.jar:/Users/mike/.ivy2/cache/io.circe/circe-core_2.12/jars/circe-core_2.12-0.9.0.jar:/Users/mike/.ivy2/cache/io.circe/circe-generic_2.12/jars/circe-generic_2.12-0.8.0.jar:/Users/mike/.ivy2/cache/io.circe/circe-jawn_2.12/jars/circe-jawn_2.12-0.9.0.jar:/Users/mike/.ivy2/cache/io.circe/circe-numbers_2.12/jars/circe-numbers_2.12-0.9.0.jar:/Users/mike/.ivy2/cache/io.circe/circe-parser_2.12/jars/circe-parser_2.12-0.8.0.jar:/Users/mike/.ivy2/cache/io.netty/netty-buffer/jars/netty-buffer-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-codec/jars/netty-codec-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-codec-dns/jars/netty-codec-dns-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-codec-http/jars/netty-codec-http-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-common/jars/netty-common-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-handler/jars/netty-handler-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-resolver/jars/netty-resolver-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-resolver-dns/jars/netty-resolver-dns-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-transport/jars/netty-transport-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.netty/netty-transport-native-epoll/jars/netty-transport-native-epoll-4.1.13.Final-linux-x86_64.jar:/Users/mike/.ivy2/cache/io.netty/netty-transport-native-unix-common/jars/netty-transport-native-unix-common-4.1.13.Final.jar:/Users/mike/.ivy2/cache/io.spray/spray-json_2.12/bundles/spray-json_2.12-1.3.2.jar:/Users/mike/.ivy2/cache/javax.annotation/javax.annotation-api/jars/javax.annotation-api-1.2.jar:/Users/mike/.ivy2/cache/javax.ws.rs/javax.ws.rs-api/jars/javax.ws.rs-api-2.0.1.jar:/Users/mike/.ivy2/cache/javax.xml.bind/jaxb-api/jars/jaxb-api-2.3.0.jar:/Users/mike/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.9.4.jar:/Users/mike/.ivy2/cache/net.jpountz.lz4/lz4/jars/lz4-1.3.0.jar:/Users/mike/.ivy2/cache/org.apache.commons/commons-compress/jars/commons-compress-1.9.jar:/Users/mike/.ivy2/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.4.jar:/Users/mike/.ivy2/cache/org.apache.commons/commons-math3/jars/commons-math3-3.2.jar:/Users/mike/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.5.jar:/Users/mike/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.4.5.jar:/Users/mike/.ivy2/cache/org.asynchttpclient/async-http-client/jars/async-http-client-2.1.0-alpha22.jar:/Users/mike/.ivy2/cache/org.asynchttpclient/async-http-client-netty-utils/jars/async-http-client-netty-utils-2.1.0-alpha22.jar:/Users/mike/.ivy2/cache/org.bitlet/weupnp/bundles/weupnp-0.1.4.jar:/Users/mike/.ivy2/cache/org.bouncycastle/bcpkix-jdk15on/jars/bcpkix-jdk15on-1.59.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2/hk2-api/jars/hk2-api-2.4.0-b34.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2/hk2-locator/jars/hk2-locator-2.4.0-b34.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2/hk2-utils/jars/hk2-utils-2.4.0-b34.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2/osgi-resource-locator/jars/osgi-resource-locator-1.0.1.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2.external/aopalliance-repackaged/jars/aopalliance-repackaged-2.4.0-b34.jar:/Users/mike/.ivy2/cache/org.glassfish.hk2.external/javax.inject/jars/javax.inject-2.4.0-b34.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.bundles.repackaged/jersey-guava/bundles/jersey-guava-2.22.2.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.connectors/jersey-apache-connector/jars/jersey-apache-connector-2.22.2.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.core/jersey-client/jars/jersey-client-2.22.2.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.core/jersey-common/jars/jersey-common-2.22.2.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.ext/jersey-entity-filtering/jars/jersey-entity-filtering-2.22.2.jar:/Users/mike/.ivy2/cache/org.glassfish.jersey.media/jersey-media-json-jackson/jars/jersey-media-json-jackson-2.22.2.jar:/Users/mike/.ivy2/cache/org.javassist/javassist/bundles/javassist-3.18.1-GA.jar:/Users/mike/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.2.jar:/Users/mike/.ivy2/cache/org.mongodb/casbah-commons_2.12.0-RC1/jars/casbah-commons_2.12.0-RC1-3.1.1.jar:/Users/mike/.ivy2/cache/org.mongodb/casbah-core_2.12.0-RC1/jars/casbah-core_2.12.0-RC1-3.1.1.jar:/Users/mike/.ivy2/cache/org.mongodb/casbah-gridfs_2.12.0-RC1/jars/casbah-gridfs_2.12.0-RC1-3.1.1.jar:/Users/mike/.ivy2/cache/org.mongodb/casbah-query_2.12.0-RC1/jars/casbah-query_2.12.0-RC1-3.1.1.jar:/Users/mike/.ivy2/cache/org.mongodb/mongo-java-driver/jars/mongo-java-driver-3.2.2.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm/jars/asm-5.0.4.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm-analysis/jars/asm-analysis-5.0.3.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm-commons/jars/asm-commons-5.0.3.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm-tree/jars/asm-tree-5.0.3.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm-util/jars/asm-util-5.0.3.jar:/Users/mike/.ivy2/cache/org.reactivestreams/reactive-streams/jars/reactive-streams-1.0.2.jar:/Users/mike/.ivy2/cache/org.rudogma/supertagged_2.12/jars/supertagged_2.12-1.4.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.12/bundles/scala-java8-compat_2.12-0.8.0.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.12/bundles/scala-parser-combinators_2.12-1.0.4.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-xml_2.12/bundles/scala-xml_2.12-1.0.5.jar:/Users/mike/.ivy2/cache/org.scala-sbt/test-interface/jars/test-interface-1.0.jar:/Users/mike/.ivy2/cache/org.scala-tools.testing/test-interface/jars/test-interface-0.5.jar:/Users/mike/.ivy2/cache/org.scalacheck/scalacheck_2.12/jars/scalacheck_2.12-1.13.5.jar:/Users/mike/.ivy2/cache/org.scalactic/scalactic_2.12/bundles/scalactic_2.12-3.0.5.jar:/Users/mike/.ivy2/cache/org.scalatest/scalatest_2.12/bundles/scalatest_2.12-3.0.5.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/iodb_2.12/jars/iodb_2.12-0.3.2.jar:/Users/mike/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.25.jar:/Users/mike/.ivy2/cache/org.spire-math/jawn-parser_2.12/jars/jawn-parser_2.12-0.11.0.jar:/Users/mike/.ivy2/cache/org.typelevel/cats-core_2.12/jars/cats-core_2.12-1.0.1.jar:/Users/mike/.ivy2/cache/org.typelevel/cats-kernel_2.12/jars/cats-kernel_2.12-1.0.1.jar:/Users/mike/.ivy2/cache/org.typelevel/cats-macros_2.12/jars/cats-macros_2.12-1.0.1.jar:/Users/mike/.ivy2/cache/org.typelevel/machinist_2.12/jars/machinist_2.12-0.6.2.jar:/Users/mike/.ivy2/cache/org.typelevel/macro-compat_2.12/jars/macro-compat_2.12-1.1.1.jar:/Users/mike/.ivy2/cache/org.whispersystems/curve25519-java/jars/curve25519-java-0.4.1.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-async_2.12/jars/scala-async_2.12-0.9.7.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/scrypto_2.12/jars/scrypto_2.12-2.1.1.jar:/Users/mike/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-3.0.2.jar:/Users/mike/.ivy2/cache/com.google.guava/guava/bundles/guava-21.0.jar:/Users/mike/.ivy2/cache/com.lihaoyi/fastparse-utils_2.12/jars/fastparse-utils_2.12-1.0.0.jar:/Users/mike/.ivy2/cache/com.lihaoyi/fastparse_2.12/jars/fastparse_2.12-1.0.0.jar:/Users/mike/.ivy2/cache/com.lihaoyi/sourcecode_2.12/bundles/sourcecode_2.12-0.1.4.jar:/Users/mike/.ivy2/cache/jline/jline/jars/jline-2.14.3.jar:/Users/mike/.ivy2/cache/org.bitbucket.inkytonik.dsinfo/dsinfo_2.12/jars/dsinfo_2.12-0.4.0.jar:/Users/mike/.ivy2/cache/org.bitbucket.inkytonik.dsprofile/dsprofile_2.12/jars/dsprofile_2.12-0.4.0.jar:/Users/mike/.ivy2/cache/org.bitbucket.inkytonik.kiama/kiama_2.12/jars/kiama_2.12-2.1.0.jar:/Users/mike/.ivy2/cache/org.rogach/scallop_2.12/jars/scallop_2.12-2.1.1.jar:/Users/mike/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.6.jar:/Users/mike/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.12.6.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/scorex-core_2.12/jars/scorex-core_2.12-33d8f788-SNAPSHOT.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/scorex-testkit_2.12/jars/scorex-testkit_2.12-33d8f788-SNAPSHOT.jar:/Users/mike/.ivy2/local/org.scorexfoundation/sigma-state_2.12/0.9.1/jars/sigma-state_2.12.jar" org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner -s org.ergoplatform.nodeView.state.UtxoStateSpecification -testName "applyModifier() - valid full block after invalid one" -C org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestReporter -showProgressMessages true
2018-05-29 17:34:20 WARN  [ScalaTest-run] o.e.settings.ErgoSettings$ - NO CONFIGURATION FILE WAS PROVIDED. STARTING WITH DEFAULT SETTINGS FOR TESTNET!
2018-05-29 17:34:21 INFO  [ScalaTest-run-running-UtxoStateSpecification] o.e.n.state.ErgoState$ - Generating genesis UTXO state
!! 2102400
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
110000
120000
130000
140000
150000
160000
170000
180000
190000
200000
210000
220000
230000
240000
250000
260000
270000
280000
290000
300000
310000
320000
330000
340000
350000
360000
370000
380000
390000
400000
410000
420000
430000
440000
450000
460000
470000
480000
490000
500000
510000
520000
530000
540000
550000
560000
570000
580000
590000
600000
610000
620000
630000
640000
650000
660000
670000
680000
690000
700000
710000
720000
730000
740000
750000
760000
770000
780000
790000
800000
810000
820000
830000
840000
850000
860000
870000
880000
890000
900000
910000
920000
930000
940000
950000
960000
970000
980000
990000
1000000
1010000
1020000
1030000
1040000
1050000
1060000
1070000
1080000
1090000
1100000
1110000
1120000
1130000
1140000
1150000
1160000
1170000
1180000
1190000
1200000
1210000
1220000
1230000
1240000
1250000
1260000
1270000
1280000
1290000
1300000
1310000
1320000
1330000
1340000
1350000
1360000
1370000
1380000
1390000
1400000
1410000
1420000
1430000
1440000
1450000
1460000
1470000
1480000
1490000
1500000
1510000
1520000
1530000
1540000
1550000
1560000
1570000
1580000
1590000
1600000
1610000
1620000
1630000
1640000
1650000
1660000
1670000
1680000
1690000
1700000
1710000
1720000
1730000
1740000
1750000
1760000
1770000
1780000
1790000
1800000
1810000
1820000
1830000
1840000
1850000
1860000
1870000
1880000
1890000
1900000
1910000
1920000
1930000
1940000
1950000
1960000
1970000
1980000
1990000
2000000
2010000
2020000
2030000
2040000
2050000
2060000
2070000
2080000
2090000
2100000

An exception or error caused a run to abort: GC overhead limit exceeded 
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:177)
    at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:44)
    at scala.collection.generic.Growable.loop$1(Growable.scala:53)
    at scala.collection.generic.Growable.$plus$plus$eq(Growable.scala:58)
    at scala.collection.generic.Growable.$plus$plus$eq$(Growable.scala:50)
    at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:186)
    at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:44)
    at scala.collection.TraversableLike.$plus$plus(TraversableLike.scala:146)
    at scala.collection.TraversableLike.$plus$plus$(TraversableLike.scala:143)
    at scala.collection.immutable.List.$plus$plus(List.scala:207)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:76)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.$anonfun$update$1(VersionedIODBAVLStorage.scala:50)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage$$Lambda$287/843299092.apply$mcV$sp(Unknown Source)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)

Process finished with exit code 0
mike-aksarin commented 6 years ago

Here is the same stacktrace from scorex.crypto.authds.avltree.batch.benchmark.OOMTest:

/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=59719:/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/lib/tools.jar:/Users/mike/dev/avliodb/target/scala-2.12/test-classes:/Users/mike/dev/avliodb/target/scala-2.12/classes:/Users/mike/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.2.3.jar:/Users/mike/.ivy2/cache/org.whispersystems/curve25519-java/jars/curve25519-java-0.4.1.jar:/Users/mike/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.25.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/scrypto_2.12/jars/scrypto_2.12-2.1.0.jar:/Users/mike/.ivy2/cache/org.scorexfoundation/iodb_2.12/jars/iodb_2.12-0.3.2.jar:/Users/mike/.ivy2/cache/org.scalatest/scalatest_2.12/bundles/scalatest_2.12-3.0.5.jar:/Users/mike/.ivy2/cache/org.scalactic/scalactic_2.12/bundles/scalactic_2.12-3.0.5.jar:/Users/mike/.ivy2/cache/org.scalacheck/scalacheck_2.12/jars/scalacheck_2.12-1.13.5.jar:/Users/mike/.ivy2/cache/org.scala-tools.testing/test-interface/jars/test-interface-0.5.jar:/Users/mike/.ivy2/cache/org.scala-sbt/test-interface/jars/test-interface-1.0.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-xml_2.12/bundles/scala-xml_2.12-1.0.6.jar:/Users/mike/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.12/bundles/scala-parser-combinators_2.12-1.0.4.jar:/Users/mike/.sbt/boot/scala-2.12.4/lib/scala-reflect.jar:/Users/mike/.sbt/boot/scala-2.12.4/lib/scala-library.jar:/Users/mike/.ivy2/cache/org.rudogma/supertagged_2.12/jars/supertagged_2.12-1.4.jar:/Users/mike/.ivy2/cache/org.ow2.asm/asm/jars/asm-5.0.4.jar:/Users/mike/.ivy2/cache/org.mongodb.scala/mongo-scala-driver_2.12/jars/mongo-scala-driver_2.12-2.2.0.jar:/Users/mike/.ivy2/cache/org.mongodb.scala/mongo-scala-bson_2.12/jars/mongo-scala-bson_2.12-2.2.0.jar:/Users/mike/.ivy2/cache/org.mongodb/mongodb-driver-core/jars/mongodb-driver-core-3.6.0.jar:/Users/mike/.ivy2/cache/org.mongodb/mongodb-driver-async/jars/mongodb-driver-async-3.6.0.jar:/Users/mike/.ivy2/cache/org.mongodb/bson/jars/bson-3.6.0.jar:/Users/mike/.ivy2/cache/org.bouncycastle/bcprov-jdk15on/jars/bcprov-jdk15on-1.59.jar:/Users/mike/.ivy2/cache/org.apache.commons/commons-math3/jars/commons-math3-3.2.jar:/Users/mike/.ivy2/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.4.jar:/Users/mike/.ivy2/cache/net.jpountz.lz4/lz4/jars/lz4-1.3.0.jar:/Users/mike/.ivy2/cache/javax.xml.bind/jaxb-api/jars/jaxb-api-2.3.0.jar:/Users/mike/.ivy2/cache/io.spray/spray-json_2.12/bundles/spray-json_2.12-1.3.2.jar:/Users/mike/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.4.jar:/Users/mike/.ivy2/cache/com.thoughtworks.paranamer/paranamer/bundles/paranamer-2.8.jar:/Users/mike/.ivy2/cache/com.storm-enroute/scalameter_2.12/jars/scalameter_2.12-0.9.jar:/Users/mike/.ivy2/cache/com.storm-enroute/scalameter-core_2.12/jars/scalameter-core_2.12-0.9.jar:/Users/mike/.ivy2/cache/com.google.guava/guava/bundles/guava-19.0.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-scala_2.12/bundles/jackson-module-scala_2.12-2.8.5.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-paranamer/bundles/jackson-module-paranamer-2.8.5.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.8.5.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.8.5.jar:/Users/mike/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.8.5.jar:/Users/mike/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.2.3.jar scorex.crypto.authds.avltree.batch.benchmark.OOMTest
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
110000
120000
130000
140000
150000
160000
170000
180000
190000
200000
210000
220000
230000
240000
250000
260000
270000
280000
290000
300000
310000
320000
330000
340000
350000
360000
370000
380000
390000
400000
410000
420000
430000
440000
450000
460000
470000
480000
490000
500000
510000
520000
530000
540000
550000
560000
570000
580000
590000
600000
610000
620000
630000
640000
650000
660000
670000
680000
690000
700000
710000
720000
730000
740000
750000
760000
770000
780000
790000
800000
810000
820000
830000
840000
850000
860000
870000
880000
890000
900000
910000
920000
930000
940000
950000
960000
970000
980000
990000
1000000
1010000
1020000
1030000
1040000
1050000
1060000
1070000
1080000
1090000
1100000
1110000
1120000
1130000
1140000
1150000
1160000
1170000
1180000
1190000
1200000
1210000
1220000
1230000
1240000
1250000
1260000
1270000
1280000
1290000
1300000
1310000
1320000
1330000
1340000
1350000
1360000
1370000
1380000
1390000
1400000
1410000
1420000
1430000
1440000
1450000
1460000
1470000
1480000
1490000
1500000
1510000
1520000
1530000
1540000
1550000
1560000
1570000
1580000
1590000
1600000
1610000
1620000
1630000
1640000
1650000
1660000
1670000
1680000
1690000
1700000
1710000
1720000
1730000
1740000
1750000
1760000
1770000
1780000
1790000
1800000
1810000
1820000
1830000
1840000
1850000
1860000
1870000
1880000
1890000
1900000
1910000
1920000
1930000
1940000
1950000
1960000
1970000
1980000
1990000
2000000
2010000
2020000
2030000
2040000
2050000
2060000
2070000
2080000
2090000
2100000
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at scala.collection.mutable.ArrayBuilder$ofByte.mkArray(ArrayBuilder.scala:128)
    at scala.collection.mutable.ArrayBuilder$ofByte.resize(ArrayBuilder.scala:134)
    at scala.collection.mutable.ArrayBuilder$ofByte.sizeHint(ArrayBuilder.scala:139)
    at scala.collection.mutable.Builder.sizeHint(Builder.scala:99)
    at scala.collection.mutable.Builder.sizeHint$(Builder.scala:96)
    at scala.collection.mutable.ArrayBuilder.sizeHint(ArrayBuilder.scala:21)
    at scala.collection.TraversableLike.$plus$plus(TraversableLike.scala:145)
    at scala.collection.TraversableLike.$plus$plus$(TraversableLike.scala:143)
    at scala.collection.mutable.ArrayOps$ofByte.$plus$plus(ArrayOps.scala:203)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.toBytes(VersionedIODBAVLStorage.scala:86)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:71)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:74)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.serializedVisitedNodes(VersionedIODBAVLStorage.scala:75)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage.$anonfun$update$1(VersionedIODBAVLStorage.scala:50)
    at scorex.crypto.authds.avltree.batch.VersionedIODBAVLStorage$$Lambda$69/1686145731.apply$mcV$sp(Unknown Source)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)

Process finished with exit code 1