DAEMON_EXPIRATION
cicd
system_error
ai_generated
true
org.gradle.launcher.daemon.server.DaemonExpirationPeriodicCheck: Daemon will be stopped at the end of the build after running for X hours and not being used for Y hours
ID: cicd/gradle-daemon-stopped-after-build
85%Fix Rate
88%Confidence
1Evidence
2023-11-15First Seen
Root Cause
Gradle daemon reaches its idle timeout (default 3 hours) or maximum age (default 24 hours) during a CI build, causing it to be stopped prematurely, which can lead to build failures if the daemon is needed for subsequent tasks.
generic中文
Gradle守护进程在CI构建期间达到空闲超时(默认3小时)或最大存活时间(默认24小时),导致被提前停止,如果后续任务需要该守护进程,可能导致构建失败。
Official Documentation
https://docs.gradle.org/current/userguide/gradle_daemon.htmlWorkarounds
-
85% success Set org.gradle.daemon.idletimeout=7200000 in gradle.properties to increase idle timeout to 2 hours (value in milliseconds). Also set org.gradle.daemon.registrybase=/tmp/gradle-daemon to avoid PID file conflicts in CI.
Set org.gradle.daemon.idletimeout=7200000 in gradle.properties to increase idle timeout to 2 hours (value in milliseconds). Also set org.gradle.daemon.registrybase=/tmp/gradle-daemon to avoid PID file conflicts in CI.
-
90% success Run Gradle with --no-daemon flag in CI scripts to avoid daemon lifecycle issues altogether: ./gradlew build --no-daemon
Run Gradle with --no-daemon flag in CI scripts to avoid daemon lifecycle issues altogether: ./gradlew build --no-daemon
中文步骤
Set org.gradle.daemon.idletimeout=7200000 in gradle.properties to increase idle timeout to 2 hours (value in milliseconds). Also set org.gradle.daemon.registrybase=/tmp/gradle-daemon to avoid PID file conflicts in CI.
Run Gradle with --no-daemon flag in CI scripts to avoid daemon lifecycle issues altogether: ./gradlew build --no-daemon
Dead Ends
Common approaches that don't work:
-
Set org.gradle.daemon=false in gradle.properties to disable daemon entirely
20% fail
Disabling daemon forces a new JVM for each build, increasing startup time and memory overhead, and may cause other race conditions in CI pipelines.
-
Increase max heap size for daemon (org.gradle.jvmargs=-Xmx4g) to avoid memory pressure
80% fail
Heap size does not affect idle timeout; the daemon is stopped based on time, not memory usage, so this fix is irrelevant.