0
我们有Jenkins设置为我们团队目前正在进行的项目运行工作,但由于OutOfMemory
,我们遇到工作不断崩溃的问题。詹金斯工作的SBT不断OutOfMemory
Jenkins环境正在虚拟机上运行。它所在的机器具有相当好的规格,并且不需要很多虚拟机。我们的SBT作业运行在一个单独的作业列表中,其中有8GB的可用RAM。
项目build.properties sbt.version=0.13.9
詹金斯版本。 2.6
我们正在作业执行以下命令:
/usr/java/default/bin/java -Xmx2G -XX:+CMSClassUnloadingEnabled -XX:MaxMetaspaceSize=2G -Dsbt.override.build.repos=true -Dsbt.log.noformat=true -jar /usr/local/sbt/default/bin/sbt-launch.jar compile test:compile test universal:publish
将会产生整个日志如下:
Exception in thread "Thread-40" java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:945)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:934)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "Thread-29" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:223)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2321)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2614)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2624)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
at sbt.React.react(ForkTests.scala:114)
at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:74)
at java.lang.Thread.run(Thread.java:745)
转储文件的作业产生here(pastebin.com/EM3qva5C )
我们已经尝试了不同的java参数变体,但所有的结果都来了,所以我们想知道是否有东西其他错误/我们需要改变以防止构建失败?
嗨,对不起已故的答复。尝试这个没有运气。我一直在做一些进一步的测试和禁用更多的RAM等叉,但仍然没有运气。我注意到它只在测试中失败了。 我们有一个多模块项目,所以我决定运行每个子模块的测试顺序如下: 'compile test:compile module1/test module2/test module3/test module4/test module5/test module6/test module7/test module8/test module9/test' This passed fine but but if I just run: 'compile test:compile test' It fail – Burnett