Развертывание Play2.1-RC1 на героку дает ошибку

Я сталкиваюсь с этой ошибкой, когда развертываю свое приложение на основе Play2.1-RC1 в Heroku.

[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

Файл plugins.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
  )

}

ОБНОВЛЕНИЕ JAVA_OPTS и SBT_OPTS изменены с -Xmx384m -Xss512k -XX:+UseCompressedOops на -Xmx1024m -Xss512k -XX:+UseCompressedOops.

но опять та же ошибка.


person weakwire    schedule 21.11.2012    source источник
comment
Я немного смущен. Ошибка OOM происходит на вашей стороне или у Heroku?   -  person pedrofurla    schedule 22.11.2012
comment
происходит на стороне героку   -  person weakwire    schedule 22.11.2012


Ответы (1)


Это ошибка PermGen, попробуйте добавить:

-XX:PermSize=256m

Это известная проблема, взгляните на https://github.com/heroku/heroku-buildpack-scala/pull/26 и https://github.com/heroku/heroku-buildpack-scala/tree/perm-gen

ОБНОВЛЕНИЕ:

Как указал @ryanbrainard, проблема perm-gen была решена в пакете сборки scala по умолчанию, поэтому нет необходимости использовать конкретный пакет сборки, упомянутый выше.

person ndeverge    schedule 21.11.2012
comment
Ty.Life Saver! используемая конфигурация heroku: добавить BUILDPACK_URL=github.com/heroku/heroku-buildpack-scala.g… …it#perm-gen - person weakwire; 21.11.2012
comment
Ветвь perm-gen была объединена с master и теперь является сборочным пакетом Scala по умолчанию в Heroku. Если вы указывали BUILDPACK_URL для использования ветки, теперь вам следует вернуться к использованию стандартного пакета сборки: heroku config:remove BUILDPACK_URL - person ryanbrainard; 04.12.2012