-
Bug
-
Resolution: Done
-
Undefined
-
None
-
False
-
-
False
-
-
Before reporting an issue
[X] I have read and understood the above terms for submitting issues, and I understand that my issue may be closed without action if I do not follow them.
Area
dist/quarkus
Describe the bug
Quarkus augmentation time significantly increased after the upgrade to 3.8.4. It appears to mostly be due to the changes in the ResteasyReactiveJacksonProcessor#handleFieldSecurity method.
Version
Nightly
Regression
[X] The issue is a regression
Expected behavior
Not so drastic impact on augmentation time. Timing info from 3.8.3:
Without Providers:
2024-05-13 17:55:51,949 TRACE [io.qua.builder] (build-8) Finished step "io.quarkus.resteasy.reactive.jackson.deployment.processor.ResteasyReactiveJacksonProcessor#handleFieldSecurity" in 17 ms
With Providers:
2024-05-13 17:51:30,489 TRACE [io.qua.builder] (build-64) Finished step "io.quarkus.resteasy.reactive.jackson.deployment.processor.ResteasyReactiveJacksonProcessor#handleFieldSecurity" in 19 ms
Actual behavior
Large jump in augmentation time when using our custom providers. The time increase is almost unnoticeable without providers.
Without Providers:
2024-05-02 19:25:17,643 TRACE [io.qua.builder] (build-28) Finished step "io.quarkus.resteasy.reactive.jackson.deployment.processor.ResteasyReactiveJacksonProcessor#handleFieldSecurity" in 827 ms
With Providers:
2024-05-02 19:19:52,537 TRACE [io.qua.builder] (build-23) Finished step "io.quarkus.resteasy.reactive.jackson.deployment.processor.ResteasyReactiveJacksonProcessor#handleFieldSecurity" in 44565 ms
How to Reproduce?
Download or build the nightly keycloak quarkus distribution.
Enable TRACE for io.quarkus
Run /bin/kc.sh build
The increase in time can be seen without providers, but it's more dramatic with ours.
Anything else?
This commit in quarkus introduced a bunch of recursion in related code.
https://github.com/quarkusio/quarkus/commit/e6376f9e5b4623989745079786d9aa0fd6bf6d72
It looks like it's checking return types from REST resource methods, but I'm having trouble tracking down exactly what about our RealmResourceProviders might be causing the increase in build time.
- links to