1

我遇到這個錯誤,當我部署我Play2.1-RC1基於應用程序的Heroku部署Play2.1-RC1給出錯誤

[info] 'compiler-interface' not yet compiled for Scala 2.10.0-RC1. Compiling... 
     sbt appears to be exiting abnormally. 
     The log file for this session is at /tmp/sbt6398446576215517800.log 
     java.lang.OutOfMemoryError: PermGen space 
     at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) 
     at java.util.concurrent.FutureTask.get(FutureTask.java:111) 
     at sbt.ConcurrentRestrictions$$anon$4.take(ConcurrentRestrictions.scala:195) 
     at sbt.Execute.next$1(Execute.scala:85) 
     at sbt.Execute.processAll(Execute.scala:88) 
     ... 

      ... 
    Error during sbt execution: java.lang.OutOfMemoryError: PermGen space ! 
    Failed to build app with sbt !  
    Heroku push rejected, failed to compile Play 2.0 - scala app 

build.properties

sbt.version=0.12.1 

的插件。 SBT文件

// Comment to get more information during initialization 
logLevel := Level.Warn 

// The Typesafe repository 
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" 


// Use the Play sbt plugin for Play projects 
addSbtPlugin("play" % "sbt-plugin" % "2.1-RC1") 

的Build.scala

進口sbt._ 進口PlayProject._

object ApplicationBuild extends Build { 

    val appName = "myappname" 
    val appVersion = "1.0-SNAPSHOT" 

    val appDependencies = Seq(
    // Add your project dependencies here, 
    jdbc,filters, 
    "org.squeryl" % "squeryl_2.10.0-RC2" % "0.9.5-4", 
    "postgresql" % "postgresql" % "9.1-901-1.jdbc4" 
) 

    val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here 
) 

} 

UPDATE 改變JAVA_OPTS和SBT_OPTS從 -Xmx384m -Xss512k -XX:+UseCompressedOops-Xmx1024m -Xss512k -XX:+UseCompressedOops

但同樣的錯誤再次。

+0

我有點困惑。他的OOM錯誤發生在你身邊還是Heroku的? – pedrofurla

+0

發生在heroku身邊 – weakwire

回答

3

這是一個PermGen的錯誤,試着加入:

-XX:PermSize=256m 

這是一個衆所周知的問題,看看https://github.com/heroku/heroku-buildpack-scala/pull/26https://github.com/heroku/heroku-buildpack-scala/tree/perm-gen

UPDATE:

由於@ryanbrainard指出, perm-gen問題已經在默認的scala-buildpack上解決了,所以不需要使用上面提到的特定buildpack。

+1

Ty.Life Saver!使用的heroku配置:添加BUILDPACK_URL =「https://github.com/heroku/heroku-buildpack-scala.g... ... it#perm-gen」 – weakwire

+0

**'perm-gen'分支已合併到'master ',現在是Heroku上默認的Scala buildpack ** 如果你指定'BUILDPACK_URL'來使用分支,你現在應該返回到使用默認的buildpack: heroku config:remove BUILDPACK_URL – ryanbrainard