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

Upgrade to Smallrye Fault Tolerance 6.5.0 and resolve FT methods during build #43833

Merged
merged 2 commits into from
Oct 14, 2024

Conversation

Ladicek
Copy link
Contributor

@Ladicek Ladicek commented Oct 11, 2024

Copy link

quarkus-bot bot commented Oct 11, 2024

Thanks for your pull request!

Your pull request does not follow our editorial rules. Could you have a look?

  • description should not be empty, describe your intent or provide links to the issues this PR is fixing (using Fixes #NNNNN) or changelogs

This message is automatically generated by a bot.

@quarkus-bot quarkus-bot bot added area/core area/dependencies Pull requests that update a dependency file area/fault-tolerance area/smallrye labels Oct 11, 2024
@Ladicek
Copy link
Contributor Author

Ladicek commented Oct 11, 2024

This builds on a new feature of SmallRye Fault Tolerance 6.5.0, which requires fault tolerance methods to be resolved during deployment -- which means at build time in Quarkus. This is what most of the changes in this PR relate to.

CC @zakkak -- this is what we discussed a while ago (see also #42229).

This comment has been minimized.

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

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

This looks good to me. I just want to check with @radcortez that we are OK partially updating to next MicroProfile in 3.16 (because my understanding is that it's what we do here, correct me if I'm mistaken).

@Ladicek
Copy link
Contributor Author

Ladicek commented Oct 14, 2024

Yeah, that's right. MP FT 4.1 is part of MicroProfile 7.0.

I don't think we've coordinated updates in the past, but if @radcortez wants, this can certainly wait.

This commit includes build-time resolution of fault tolerance methods
(`@Fallback.fallbackMethod()`, `@BeforeRetry.methodName()`). This means
that the corresponding configuration properties are now build-time only,
instead of runtime. This is a breaking change, but since we need to
register these methods for reflection for native image compilation,
there's unfortunately no other way.
@Ladicek Ladicek force-pushed the smallrye-fault-tolerance-6.5.0 branch from 53bbf9c to 0a67472 Compare October 14, 2024 10:45
@radcortez
Copy link
Member

This looks good to me. I just want to check with @radcortez that we are OK partially updating to next MicroProfile in 3.16 (because my understanding is that it's what we do here, correct me if I'm mistaken).

Yes, it is ok. Currently, we stopped being compatible some versions ago with the OTel updates, so it's not a big deal. We do have to ensure that we are able to sync all the work in one of our releases so we can certify again.

Copy link

quarkus-bot bot commented Oct 14, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 0a67472.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
JVM Tests - JDK 17 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 21 Build Failures Logs Raw logs 🔍

You can consult the Develocity build scans.

Failures

⚙️ JVM Tests - JDK 17 #

- Failing: integration-tests/redis-client 

📦 integration-tests/redis-client

Failed to execute goal io.fabric8:docker-maven-plugin:0.45.1:start (docker-start) on project quarkus-integration-test-redis-client: I/O Error


⚙️ JVM Tests - JDK 21 #

- Failing: integration-tests/logging-gelf 

📦 integration-tests/logging-gelf

Failed to execute goal io.fabric8:docker-maven-plugin:0.45.1:start (docker-start) on project quarkus-integration-test-logging-gelf: I/O Error


Flaky tests - Develocity

⚙️ Gradle Tests - JDK 17 Windows

📦 integration-tests/gradle

io.quarkus.gradle.devmode.KotlinProjectWithCompilerArgsDevModeTest.main - History

  • Condition with Lambda expression in io.quarkus.test.devmode.util.DevModeClient was not fulfilled within 2 minutes. - org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: Condition with Lambda expression in io.quarkus.test.devmode.util.DevModeClient was not fulfilled within 2 minutes.
	at app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at app//org.awaitility.core.CallableCondition.await(CallableCondition.java:78)
	at app//org.awaitility.core.CallableCondition.await(CallableCondition.java:26)
	at app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
	at app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:975)
	at app//io.quarkus.test.devmode.util.DevModeClient.getHttpResponse(DevModeClient.java:164)
	at app//io.quarkus.gradle.devmode.QuarkusDevGradleTestBase.getHttpResponse(QuarkusDevGradleTestBase.java:164)

@gsmet gsmet merged commit fa93db7 into quarkusio:main Oct 14, 2024
50 of 52 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.16 - main milestone Oct 14, 2024
@gsmet
Copy link
Member

gsmet commented Oct 14, 2024

CI failures were unrelated.

@Ladicek Ladicek deleted the smallrye-fault-tolerance-6.5.0 branch October 15, 2024 06:41
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