-
Notifications
You must be signed in to change notification settings - Fork 631
[BUG]: Proguard is flaky in CI due to OOMs #6186
Copy link
Copy link
Labels
Impact: HighHigh perceived user impact (breaks a critical feature or blocks a release).High perceived user impact (breaks a critical feature or blocks a release).Work: MediumThe means to find the solution is clear, but it isn't at good-first-issue level yet.The means to find the solution is clear, but it isn't at good-first-issue level yet.bugEnd user-perceivable behaviors which are not desirable.End user-perceivable behaviors which are not desirable.
Metadata
Metadata
Assignees
Labels
Impact: HighHigh perceived user impact (breaks a critical feature or blocks a release).High perceived user impact (breaks a critical feature or blocks a release).Work: MediumThe means to find the solution is clear, but it isn't at good-first-issue level yet.The means to find the solution is clear, but it isn't at good-first-issue level yet.bugEnd user-perceivable behaviors which are not desirable.End user-perceivable behaviors which are not desirable.
Type
Projects
Status
Todo
Describe the bug
We're seeing an uptick in Proguard CI builds failing with an error code 14 like so:
My supposition is this is an OOM and Gemini supports this conclusion.
Steps To Reproduce
Not easy unfortunately because it's fundamentally a flake.
Expected Behavior
No crashes--builds are usually quite stable.
We presumably need to reduce our memory overhead for these tasks but it's a bit challenging because Proguard itself requires substantial memory.
Gemini's suggested fixes don't seem reasonable at this stage (it suggested trying to run max memory for Bazel vs. Proguard or upgrading the actions workers use). I think something that might work better is to actually change the CI action to build everything the AAB needs before running Proguard, shutting down Bazel, then run the final build command. This will force Bazel to free up a lot of memory accumulated during the build which frees up much more for Proguard to use. An example of what that might look like for an example target
//:oppia_beta:Some caveats:
//:oppia_devbecause it doesn't have an intermediary "deployable" variant (since it doesn't go through Proguard optimizing).Screenshots/Videos
No response
What device/emulator are you using?
No response
Which Android version is your device/emulator running?
No response
Which version of the Oppia Android app are you using?
No response
Additional Context
No response