Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Gradle wrapper to 7.5 #85123

Closed
breskeby opened this issue Mar 18, 2022 · 8 comments · Fixed by #85141
Closed

Update Gradle wrapper to 7.5 #85123

breskeby opened this issue Mar 18, 2022 · 8 comments · Fixed by #85141
Assignees
Labels
:Delivery/Build Build or test infrastructure Team:Delivery Meta label for Delivery team

Comments

@breskeby
Copy link
Contributor

Gradle 7.5 (snapshot) comes with(at least) two breaking changes in our build.

  1. The api of SharedResource#getResourceLock() that we use in StandaloneRestIntegTestTask has changed
  2. Checkstyle tasks are not ran as separate process using the Gradle worker API. That is giving us a huge benefit as it allows us multiple checkstyle tasks for the same gradle project can been run in parallel now. However, how this initially work has finally ended up in Gradle master broke :server:precommit as the checkstyleMain and checkstyleTest require more than the default heap. We provided a fix for this to the Gradle team via this PR already: Add memory config to checkstyle gradle/gradle#20198
@breskeby breskeby added the :Delivery/Build Build or test infrastructure label Mar 18, 2022
@breskeby breskeby self-assigned this Mar 18, 2022
@elasticmachine elasticmachine added the Team:Delivery Meta label for Delivery team label Mar 18, 2022
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-delivery (Team:Delivery)

@breskeby
Copy link
Contributor Author

With the latest 7.5 snapshot we now see issues with our example plugins build:

> Task :custom-suggester:build
11:23:34 Unable to make progress running work. The following items are queued for execution but none of them can be started:
11:23:34   - :elastic+elasticsearch+pull-request+example-plugins:distribution:archives:buildLinuxTar (not ready)
11:23:34   - SymbolicLinkPreservingUntarTransform (dependencies not complete)
11:23:34   - :painless-whitelist:yamlRestTest (dependencies not complete)
11:23:34   - :painless-whitelist:check (dependencies not complete)
11:23:34   - :painless-whitelist:build (dependencies not complete)
11:23:34   - SymbolicLinkPreservingUntarTransform (dependencies not complete)
11:23:34   - :security-authorization-engine:javaRestTest (dependencies not complete)
11:23:34   - :security-authorization-engine:check (dependencies not complete)
11:23:34   - :security-authorization-engine:build (dependencies not complete)
11:23:34   - producer locations for task group 0 (dependencies not complete)
11:23:51 build complete, generating: /dev/shm/elastic+elasticsearch+pull-request+example-plugins/build/583.tar.bz2
11:23:52 
11:23:52 FAILURE: Build failed with an exception.
11:23:52 
11:23:52 * What went wrong:
11:23:52 Unable to make progress running work. There are items queued for execution but none of them can be started
11:23:52 
11:23:52 * Try:
11:23:52 > Run with --info or --debug option to get more log output.
11:23:52 
11:23:52 * Exception is:
11:23:52 java.lang.IllegalStateException: Unable to make progress running work. There are items queued for execution but none of them can be started
11:23:52 	at org.gradle.execution.plan.DefaultPlanExecutor$Queue.assertHealthy(DefaultPlanExecutor.java:283)
11:23:52 	at org.gradle.internal.resources.DefaultResourceLockCoordinationService$2.transform(DefaultResourceLockCoordinationService.java:83)
11:23:52 	at org.gradle.internal.resources.DefaultResourceLockCoordinationService$2.transform(DefaultResourceLockCoordinationService.java:80)

@mark-vieira
Copy link
Contributor

Hmm, this seems to be only when running in a composite yes? The transforms being in the list are interesting. I'm wondering if something changed there.

@breskeby
Copy link
Contributor Author

I'm pretty sure something must have changed. I'm reaching out to the gradle team. I've seen this locally once but also noticed that the first listed task actually has been executed correctly. Also you can see from the output that included builds rootProject name is not taken into account. Seems to pay off to test gradle snapshots early, though I initially only wanted to double check the checkstyle improvements.

@breskeby
Copy link
Contributor Author

raised #85123

@mark-vieira
Copy link
Contributor

raised #85123

I think you mean gradle/gradle#20254, yes?

@breskeby
Copy link
Contributor Author

Yes 🤦🏻‍♂️

breskeby added a commit to breskeby/elasticsearch that referenced this issue Apr 11, 2022
This updates the wrapper to a 7.5 nightly do double check compatibility and
checkstyle improvements before rc 1 is released to provide early feedback

Fixes elastic#85123
@breskeby
Copy link
Contributor Author

breskeby commented May 4, 2022

This is now also blocked by a regression in artifact transforms: gradle/gradle#20659

breskeby added a commit that referenced this issue May 31, 2022
This updates the wrapper to a 7.5 nightly do double check compatibility and
checkstyle improvements before rc 1 is released to provide early feedback

Fixes #85123
breskeby added a commit that referenced this issue Jun 13, 2022
This updates the wrapper to a 7.5 nightly do double check compatibility and
checkstyle improvements before rc 1 is released to provide early feedback

Fixes #85123
breskeby added a commit to breskeby/elasticsearch that referenced this issue Jul 15, 2022
This updates the wrapper to a 7.5 nightly do double check compatibility and
checkstyle improvements before rc 1 is released to provide early feedback

Fixes elastic#85123
breskeby added a commit that referenced this issue Jul 19, 2022
This updates the gradle wrapper to a 7.5

Fixes #85123
breskeby added a commit to breskeby/elasticsearch that referenced this issue Jul 19, 2022
This updates the gradle wrapper to a 7.5

Fixes elastic#85123
# Conflicts:
#	build-tools-internal/build.gradle
#	build-tools-internal/performance/elasticsearch-build-benchmark-part1.scenarios
#	build-tools-internal/performance/elasticsearch-build-benchmark-part2.scenarios
#	build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Delivery/Build Build or test infrastructure Team:Delivery Meta label for Delivery team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants