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