Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala sbt编译导致堆栈溢出错误_Scala_Sbt_Stack Overflow - Fatal编程技术网

Scala sbt编译导致堆栈溢出错误

Scala sbt编译导致堆栈溢出错误,scala,sbt,stack-overflow,Scala,Sbt,Stack Overflow,我已经面临这个错误一段时间了。因为这个完全被激怒了。尝试了stackoverflow和其他站点中的所有类似解决方案 我有4个独立的scala项目。其中,我在编译两个项目时遇到了StackOverflow错误。这两个项目是4个项目中最大的一个。 当我试图在Ubuntu服务器机器上构建项目时,我遇到了这个错误。我尝试在sbt配置文件中增加Xmx选项,但没有成功 谁能帮我解决这个问题,因为我正因为这个而发疯。如果我构建这个项目10次,它将在1到2次尝试中获得成功 我从错误日志中了解到,问题来自类型检查

我已经面临这个错误一段时间了。因为这个完全被激怒了。尝试了stackoverflow和其他站点中的所有类似解决方案

我有4个独立的scala项目。其中,我在编译两个项目时遇到了StackOverflow错误。这两个项目是4个项目中最大的一个。 当我试图在Ubuntu服务器机器上构建项目时,我遇到了这个错误。我尝试在sbt配置文件中增加Xmx选项,但没有成功

谁能帮我解决这个问题,因为我正因为这个而发疯。如果我构建这个项目10次,它将在1到2次尝试中获得成功

我从错误日志中了解到,问题来自类型检查。但是,我不知道发生在哪里

其中一个失败的项目有超过1000个类/特征(不包括案例类)

详细信息

Ubuntu Server(14)
Sbt : 0.13.6 and 0.13.8 tried
Scala Version : 2.11.6
JDK: 1.8
下面粘贴了几行错误:

java.lang.StackOverflowError
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5472)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5480)
    at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:642)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3163)
    at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$class.typedArgWithFormal$1(PatternTypers.scala:112)
    at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$$anonfun$2.apply(PatternTypers.scala:115)
    at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$$anonfun$2.apply(PatternTypers.scala:115)
    at scala.runtime.Tuple2Zipped$$anonfun$map$extension$1.apply(Tuple2Zipped.scala:46)
    at scala.runtime.Tuple2Zipped$$anonfun$map$extension$1.apply(Tuple2Zipped.scala:44)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.runtime.Tuple2Zipped$.map$extension(Tuple2Zipped.scala:44)
    at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$class.typedArgsForFormals(PatternTypers.scala:115)
    at scala.tools.nsc.typechecker.Typers$Typer.typedArgsForFormals(Typers.scala:111)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$handleMonomorphicCall$1(Typers.scala:3469)
    at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3494)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4544)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(E

自2014年11月2日至2006年11月2日,这一直影响着Scala。在2.11.7的最新发行说明中,它似乎不是固定的

幸运的是,按照问题追踪器上的答案,这是一个重复的答案


如果没有源代码,就很难给出更多的指示,但这肯定是一个很好的指针,可以找到问题并应用建议的解决方案

我尝试了所有的配置更改,但在机器上都不起作用。所以我已经跳过这个差不多一个月了。最近,我尝试在Jenkins中构建该项目,但得到了相同的错误。然后我升级了sbt 0.13.8,并在jenkins构建标志中添加了jvm标志
-XX:+CMSClassUnloadingEnabled-XX:MaxPermSize=256m-Xmx1024M-xs16m
。到目前为止,所有的汇编都是成功的。
我记得在sbt配置文件中添加了jvm标志,但得到了相同的错误。但现在,在添加该标志后,它在jenkins中运行良好。

您需要更改
-Xss
。请尝试
-Xss3m
@jrudolph在哪里进行更改?在sbtconfig.txt中?或者其他地方?以与更改
-Xmx
相同的方式。可能在您的sbt启动程序脚本中。@jrudolph:谢谢。我将添加它并尝试它是否有效。在机器上设置您的
SBT_OPTS
,此示例具有
-Xss2m
堆栈大小,这是一个非常常见的问题,我使用了很多泛型,但正如票证中提到的,我们没有任何清单。我尝试了所有与内存相关的设置,但没有用。你没有提到你没有清单。无论如何,您可以尝试a)在您可能正在使用的库中搜索
清单
使用情况,很可能有一些库正在使用它b)将您的项目升级到Scala 2.11.7 c)将错误报告给Scala-lang.org只是为了澄清一下,我在某些地方使用清单进行json反序列化。例如:def extractEntity(json:String)(隐式m:Manifest[E]):E=parse(json).extract[E],其中E是一个称为BaseEntity的特征,带有一些公共字段(id、isActive等)。目前,我使用的是2.11.6。我将尝试使用2.11.7并检查问题是否存在。如果
清单
的用法在您的代码中,我建议您将其替换为
类型标签
类标签
。由于它将被弃用,Scala的人可能根本不会修复这个bug,正如我所说,它不会出现在最近的2.11.7发行说明中感谢这个建议。Json4s的extract方法希望Manifest作为隐式参数。在那种情况下,我需要试着不使用那种方法就逃跑。