【问题标题】:Why did the Gradle Daemon die?为什么 Gradle Daemon 会死掉?
【发布时间】:2015-06-22 00:07:02
【问题描述】:

如何确定我的 Gradle 守护进程为何死亡?我得到的唯一消息是L

Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

这发生在活动构建中。几个步骤将完成,一个步骤似乎处于活动状态,然后构建失败。

这是在将我们的内存参数 (Xmx Xms PermGen) 从调用 gradlew 的 shell 脚本移动到 gradle.properties 并直接调用 gradlew 之后开始的。

build.sh

export GRADLE_OPTS="\"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=256m\""
export JAVA_HOME="/usr/local/java/jdk1.6"
exec ./gradlew "$@"

除了gradle.properties

org.gradle.java.home=/usr/local/java/jdk1.6/
org.gradle.jvmargs=-Xmx1024m -Xms256m -XX:MaxPermSize=256m

此更改后 Gradle 警告:

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html

即使我们没有要求它这样做,构建也在一个守护进程中运行,最终失败。

【问题讨论】:

  • 这是一贯的失败吗?使用 --info 或 --debug 标志运行 gradle 可能会给你一个提示
  • 自您上次使用守护程序构建某些东西以来,它已经死了多久了?
  • 相当一致。我将尝试使用--info 或--debug,但我的假设是我不会得到太多,因为进程不会拥有它是拥有它的守护进程的信息。
  • @Jolta 我应该注意到这发生在构建过程中。此构建成功后需要 3.5 小时。有时它会在 17 分钟内失败,有时会在几个小时内失败。有一些可预测的模式,但我不知道要修复什么。
  • 猜是OutOfMemory :) 你能发布构建脚本和gradle.properties的相关差异吗?

标签: gradle gradle-daemon


【解决方案1】:

Gradle build daemon disappeared unexpectedly 最常发生在其他事情杀死长期运行的 Gradle 守护进程并且客户端进程(守护进程使用本地 TCP 连接进行通信)尝试发送消息但没有得到响应时。

例如,在构建过程中运行 gradle --stopkillall java 会重现此问题。

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 2018-12-04
    • 2010-09-16
    • 2011-10-25
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多