Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Pipeline builds failed on my Android Repo

Aaron_김윤호 December 21, 2022

My android project is bigger and bigger.

I faced the OOM exception.

> Task :myproj:minifyStageReleaseWithR8

Exception in thread "Daemon client event forwarder" java.lang.OutOfMemoryError: Java heap space

at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1896)

at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2114)

at java.base/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)

at org.gradle.launcher.daemon.server.exec.DaemonConnectionBackedEventConsumer$ForwardEvents.getNextEvent(DaemonConnectionBackedEventConsumer.java:72)

at org.gradle.launcher.daemon.server.exec.DaemonConnectionBackedEventConsumer$ForwardEvents.run(DaemonConnectionBackedEventConsumer.java:59)

ERROR:R8: java.lang.OutOfMemoryError: Java heap space

> Task :myproj:minifyStageReleaseWithR8 FAILED

 

So I increased the heap size:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

 

But It failed with:

Container 'Build' exceeded memory limit.

 

My `.yml` file is:

image: androidsdk/android-30

 

pipelines:

custom:

QA:

- parallel:

- step:

name: Build APK

size: 2x

script:

- echo "$KEYSTORE_FILE_BASE64" | base64 -d > android-signing-keystore.jks

- ./gradlew clean assembleStageRelease

in case of
* low heap size -> OOM

* large heap size -> exceeded memory limit

What should I do?

1 answer

0 votes
Theodora Boudale
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
December 23, 2022

Hi @Aaron_김윤호,

The maximum memory that can be configured for a Pipelines build in our own infrastructure is 8GB with the size: 2x option. We have a feature request for the ability to increase that limit:

You can add your vote and comment there if you're interested in this feature.

If the build cannot be configured to use less than 8GB of memory, you can look into using Runners in one of your servers and run this step on a runner:

Runners allow you to run builds in Pipelines on your own infrastructure, and you won’t be charged for the build minutes used by your self-hosted runners. With a runner, it is possible to configure up to 32GB (8x) of memory to run your builds,

Kind regards,
Theodora

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PERMISSIONS LEVEL
Site Admin
TAGS
AUG Leaders

Atlassian Community Events