Skip to content

Commit 9032c6d

Browse files
authored
Mitigate Gradle daemon oomkills by monkey patching cgroup v2 into Gradle (#10247)
* chore: Try cgroup agent patcher * chore: Try cgroup agent patcher (was missing in .test_job)
1 parent 08e1657 commit 9032c6d

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

.gitlab-ci.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,20 @@ default:
197197
# replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
198198
- sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties
199199
- mkdir -p .mvn/caches
200-
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
200+
- |
201+
# Try agent, curl it locally
202+
# Maven url https://repo1.maven.org/maven2/io/github/bric3/gradle/cgroup2/patcher/gradle-cgroup2-patcher/0.0.1/gradle-cgroup2-patcher-0.0.1.jar
203+
# MagicMirror url https://depot-read-api-java.us1.ddbuild.io/magicmirror/magicmirror/@current//io/github/bric3/gradle/cgroup2/patcher/gradle-cgroup2-patcher/0.0.1/gradle-cgroup2-patcher-0.0.1.jar
204+
curl --fail \
205+
--silent \
206+
--show-error \
207+
--location \
208+
--output \
209+
/tmp/gradle-cgroup2-patcher.jar \
210+
${MAVEN_REPOSITORY_PROXY}/io/github/bric3/gradle/cgroup2/patcher/gradle-cgroup2-patcher/0.0.1/gradle-cgroup2-patcher-0.0.1.jar \
211+
|| echo "No local agent found"
212+
file /tmp/gradle-cgroup2-patcher.jar
213+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM -javaagent:/tmp/gradle-cgroup2-patcher.jar -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
201214
- export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
202215
- *normalize_node_index
203216
# for weird reasons, gradle will always "chmod 700" the .gradle folder
@@ -593,7 +606,7 @@ muzzle-dep-report:
593606
export PROFILER_COMMAND="-XX:StartFlightRecording=settings=profile,filename=/tmp/${CI_JOB_NAME_SLUG}.jfr,dumponexit=true";
594607
fi
595608
- *prepare_test_env
596-
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM $PROFILER_COMMAND -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djava.util.prefs.userRoot=/tmp/.java/.userPrefs-${CI_JOB_ID}' -Ddatadog.forkedMaxHeapSize=1024M -Ddatadog.forkedMinHeapSize=128M"
609+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms$GRADLE_MEM -Xmx$GRADLE_MEM $PROFILER_COMMAND -javaagent:/tmp/gradle-cgroup2-patcher.jar -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djava.util.prefs.userRoot=/tmp/.java/.userPrefs-${CI_JOB_ID}' -Ddatadog.forkedMaxHeapSize=1024M -Ddatadog.forkedMinHeapSize=128M"
597610
- ./gradlew --version
598611
- ./gradlew $GRADLE_TARGET $GRADLE_PARAMS -PtestJvm=$testJvm -Pslot=$CI_NODE_INDEX/$CI_NODE_TOTAL $GRADLE_ARGS --continue || $CONTINUE_ON_FAILURE
599612
after_script:

0 commit comments

Comments
 (0)