-
Notifications
You must be signed in to change notification settings - Fork 353
RabbitMQ Regression with GraalVM 22.1 #1643
Comments
Honestly .. I would also expect that the graalvm version / paketo build is tied to the spring-native version. And I think this should be the default behaviour .. otherwise builds are never repeatable .. and thats a huge bummer. The next Milestone also has a already fixed issue due to GraalVM behaviour change: |
I understand the pain of non repeatable builds with Buildpacks and the fact that the versioning scheme is not easy to understand. I will raise that point to Spring Boot team for Spring Boot 3. |
@sdeleuze thank you |
just to add .. its actually the same graalvm 22.1 version here .. just the build packs internal version differ |
With Spring Boot 3.0 M5 it works nearly out of the Box. `static class ApplicationRuntimeHints implements RuntimeHintsRegistrar {
|
Thanks, @goafabric. I think we've fixed that for RC1: spring-projects/spring-boot#32541. |
@wilkinsona cool thank you |
While the implicit upgrade of paketo to GraalVM 22.1 fixed things for JPA.
It on the other hand broke RabbitMQ Hints
While this branch worked flawlessly 2 months ago (it bootstraps the application during build to verify that application start works)
https://github.com/goafabric/event-dispatcher-service/actions/runs/2225017519
A direct copy now breaks:
https://github.com/goafabric/event-dispatcher-service/actions/runs/2507912855
See error below -- the @Queuebinding inside LoggerAdapter brakes.
Upgrading or downgrading spring (native) wont change anything
The only difference i can spot is graalvm 22.0.1 vs 22.1
I guess the Class LoggerAdapter alone should be enough to cause the behaviour
-- cut ---
com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces [interface org.springframework.amqp.rabbit.annotation.QueueBinding, interface org.springframework.core.annotation.SynthesizedAnnotation] not found. Generating proxy classes at runtime is not supported. Proxy classes need to be defined at image build time by specifying the list of interfaces that they implement. To define proxy classes use -H:DynamicProxyConfigurationFiles= and -H:DynamicProxyConfigurationResources= options.
1187
2022-06-16 09:09:19.706 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
1188
1189
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loggerAdapter': Initialization of bean failed; nested exception is com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces [interface org.springframework.amqp.rabbit.annotation.QueueBinding, interface org.springframework.core.annotation.SynthesizedAnnotation] not found. Generating proxy classes at runtime is not supported. Proxy classes need to be defined at image build time by specifying the list of interfaces that they implement. To define proxy classes use -H:DynamicProxyConfigurationFiles= and -H:DynamicProxyConfigurationResources= options.
The text was updated successfully, but these errors were encountered: