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

Don't include GraalVM dependencies in lib directory #28650

Merged
merged 1 commit into from
Oct 20, 2022

Conversation

zakkak
Copy link
Contributor

@zakkak zakkak commented Oct 17, 2022

In preparation for oracle/graal#5232

Since GraalVM dependencies are provided by GraalVM itself there is no need to include them in the lib directory of thin jars or in uber jars.

Supersedes #28647

CI run: https://github.com/graalvm/mandrel/actions/runs/3269063301

@zakkak zakkak marked this pull request as ready for review October 18, 2022 06:02
@zakkak zakkak requested review from gsmet, geoand and Sanne October 18, 2022 06:02
@@ -429,6 +430,9 @@ private static boolean includeAppDep(ResolvedDependency appDep, Optional<Set<Art
if (!appDep.isJar()) {
return false;
}
if (appDep.getGroupId().equals("org.graalvm.nativeimage") || appDep.getGroupId().equals("org.graalvm.sdk")) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to only do this for a specific GraalVM version or will this work for all versions we support?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should work for all versions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@quarkus-bot

This comment has been minimized.

@zakkak
Copy link
Contributor Author

zakkak commented Oct 18, 2022

I see a lot of timeout errors in the JVM tests. I don't see how these could relate to this change, but I am also hesitant to believe it's coincidence. Should we re-run the tests? (Update: nevermind I can do it myself :) )

@geoand
Copy link
Contributor

geoand commented Oct 18, 2022

Yeah, best re-run them

@quarkus-bot

This comment has been minimized.

@geoand
Copy link
Contributor

geoand commented Oct 18, 2022

It seems like the test failures are genuine

@zakkak zakkak force-pushed the 2022-10-18-skip-graal-deps-from-libs branch from 8d5ddbd to 2b28b05 Compare October 18, 2022 11:49
@zakkak
Copy link
Contributor Author

zakkak commented Oct 18, 2022

It seems like the test failures are genuine

Yes, apparently there are some dependencies on graal-sdk in JVM mode. I altered the PR to only skip the dependencies in native builds.

New CI run with oracle/graal#5232 : https://github.com/graalvm/mandrel/actions/runs/3273144262

@zakkak zakkak added the triage/waiting-for-ci Ready to merge when CI successfully finishes label Oct 18, 2022
@zakkak zakkak force-pushed the 2022-10-18-skip-graal-deps-from-libs branch 2 times, most recently from 0c57ee7 to 574645b Compare October 18, 2022 14:05
@zakkak zakkak force-pushed the 2022-10-18-skip-graal-deps-from-libs branch from 574645b to 2ae0c0e Compare October 18, 2022 14:08
@gsmet
Copy link
Member

gsmet commented Oct 18, 2022

@zakkak is it required for GraalVM 22.3 (and so should be backported) or is it 22.4+?

@zakkak
Copy link
Contributor Author

zakkak commented Oct 18, 2022

No, this will only be required for GraalVM 23.0 (there will be no 22.4 it goes up to YY.3, i.e. four releases per year)

}
List<String> removedArtifacts = classLoadingConfig.removedArtifacts.get();
removedArtifacts.add("org.graalvm.nativeimage:svm");
removedArtifacts.add("org.graalvm.sdk:graal-sdk");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't say I'm excited about us actually updating the config. But I suppose it shouldn't be a huge problem in practice.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went this way to reuse the existing code and avoid introducing more parameters and checks that would essentially do the same thing. As this is not urgent please let me know if you can think of any better alternatives.

@quarkus-bot
Copy link

quarkus-bot bot commented Oct 18, 2022

Failing Jobs - Building 2ae0c0e

Status Name Step Failures Logs Raw logs
✔️ JVM Tests - JDK 11
JVM Tests - JDK 11 Windows Build Failures Logs Raw logs
✔️ JVM Tests - JDK 17
JVM Tests - JDK 17 MacOS M1 Build Failures Logs Raw logs
✔️ JVM Tests - JDK 18

Full information is available in the Build summary check run.

Failures

⚙️ JVM Tests - JDK 11 Windows #

- Failing: extensions/opentelemetry/deployment 
! Skipped: integration-tests/micrometer-prometheus integration-tests/opentelemetry integration-tests/opentelemetry-grpc and 5 more

📦 extensions/opentelemetry/deployment

io.quarkus.opentelemetry.deployment.instrumentation.RestClientOpenTelemetryTest.urlWithoutAuthentication line 112 - More details - Source on GitHub

org.opentest4j.AssertionFailedError: expected: <CLIENT> but was: <SERVER>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)

⚙️ JVM Tests - JDK 17 MacOS M1 #

- Failing: extensions/vertx/deployment 
! Skipped: extensions/agroal/deployment extensions/amazon-lambda-http/deployment extensions/amazon-lambda-rest/deployment and 340 more

📦 extensions/vertx/deployment

io.quarkus.vertx.DuplicatedContextTest.testThatBlockingEventConsumersAreCalledOnDuplicatedContext - More details - Source on GitHub

(RECIPIENT_FAILURE,8185) java.util.concurrent.CompletionException: java.io.IOException: Broken pipe
	at io.vertx.core.eventbus.Message.fail(Message.java:141)
	at io.quarkus.vertx.runtime.VertxRecorder$3$1$1.handle(VertxRecorder.java:122)

@zakkak
Copy link
Contributor Author

zakkak commented Oct 19, 2022

Test failures seem unrelated to the PR.

@gsmet we would need a fix sooner than later since oracle/graal#5232 is now merged upstream and is causing CI failures (when testing with 23.0-dev), please advise on how to proceed.

@jerboaa
Copy link
Contributor

jerboaa commented Oct 20, 2022

@gsmet we would need a fix sooner than later since oracle/graal#5232 is now merged upstream and is causing CI failures (when testing with 23.0-dev), please advise on how to proceed.

Yes, please. Our integration tests are all red because of this and are at risk of missing other breakage because of it.

@gsmet gsmet merged commit 92d9151 into quarkusio:main Oct 20, 2022
@quarkus-bot quarkus-bot bot added this to the 2.14 - main milestone Oct 20, 2022
@quarkus-bot quarkus-bot bot removed the triage/waiting-for-ci Ready to merge when CI successfully finishes label Oct 20, 2022
@gsmet
Copy link
Member

gsmet commented Oct 20, 2022

I merged it.

@zakkak zakkak deleted the 2022-10-18-skip-graal-deps-from-libs branch October 20, 2022 13:12
@jerboaa
Copy link
Contributor

jerboaa commented Oct 21, 2022

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants