Приложение Spring Boot с JDK 24 AOT Cache часто висит при запускеJAVA

Программисты JAVA общаются здесь
Anonymous
Приложение Spring Boot с JDK 24 AOT Cache часто висит при запуске

Сообщение Anonymous »

Я сталкиваюсь с недоумением и разочаровывающей проблемой с приложением Spring Boot, в котором используется кэш JDK 24 AOT (заранее) (это не нативное компиляция, а просто пытаясь использовать кэш AOT). Приложение часто висит во время запуска при запуске с включенным кэшем AOT. Я ищу совета о том, как диагностировать, и, что более важно, решить эту проблему. У меня есть многоэтапный процесс для создания кэша AOT: < /p>
  • Я строю жирную пружину. -Djarmode = Tools .
  • Скопировать распакованное содержимое (

    Код: Выделить всё

    myapp.jar
    and the lib directory) to /app.
  • Run the application as a .jar with AOTMode=record and then create the AOT cache with AOTMode=create (something like this)
  • Ensure all file timestamps are set to the start of the Unix epoch, as Jib requires это.
  • Окончательное изображение контейнера содержит/appp/myapp.jar , /app/aot.app (кэш) и All/app/lib библиотеки. Пользовательская точка входа -Java -xx: aotcache =/app/app.aot -jar/app/myapp.jar.
Эта настройка успешно загружает кэш AOT. Тем не менее, поведение стартапа приложения является непоследовательным: в моих тестах оно успешно начинается только около 20% времени (быстрее, по желанию и ожидаемому), висят остальные 80% случаев (поэтому время запуска ... бесконечно). < /P>
Когда приложение висит, он всегда застрял в основном резерве. Дамп потока последовательно указывает на метод java.lang.invoke.directmethodhandleholder.invokestatic . Состояние потока запускается , но, похоже, не достигает никакого прогресса. Дамп потока выглядит так: < /p>

Код: Выделить всё

"main" #3 [5925] prio-5 os_prio=0 cpu=32236.90ms elapsed=36.51s tid=0x00007f1a2802bb00 nid=5925 runnable
[0x00007fla2e085000]
java.lang.Thread.State: RUNNABLE
at java.lang.invoke.DirectMethodHandleHolder.invokeStatic(java.base@24.0.2/DirectMethodHandleHolder)
at java.lang.invoke.DelegatingMethodHandleHolder.delegate (java.base@24.0.2/DelegatingMethodHandleHolder)
at java.lang.invoke.BootstrapMethodInvoker.invoke(java.base@24.0.2/BootstrapMethodInvoker.java:102)
at java.lang.invoke.CallSite.makeSite (java.base@24.0.2/CallSite.java:310)
at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(java.base@24.0.2/MethodHandleNatives.java:250)
at java.lang.invoke.MethodHandleNatives.linkCallSite (java.base@24.0.2/MethodHandleNatives.java:240)
at org.springframework.web.servlet.handler.AbstractHandlerMapping.formatMappingName (AbstractHandlerMapping.java:406)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.handlerMethodsInitialized (AbstractHandlerMethodMapping.java:366)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods (AbstractHandlerMethodMapping.java:227)
< /code>
Я заметил некоторые предупреждения при создании кэша AOT, хотя я не смог сопоставить их с проблемой подвешивания. Выдержки: < /p>
187 [5.271s] [warning] [cds] Preload Warning: Verification failed for org.springframework.transaction.reactive.TransactionalOperator
188 [6.378s] [warning] [cds] Preload Warning: Verification failed for org.springframework.web.servlet.view.freemarker.FreeMarkerView
189 [6.426s] [warning] [cds] Skipping jdk/internal/event/Event: JFR event class
190 [6.428s] [warning] [cds] Skipping io/github/resilience4j/spring6/circuitbreaker/configure/RxJava3CircuitBreakerAspectExt: Failed verification
Вопросы

Кто -нибудь столкнулся с аналогичной проблемой с Spring Boot, JDK 24 и кэшами AOT? AOT Cache Prantings будет связано с подвеской, и если да, то как я могу их обратиться?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... at-startup

Вернуться в «JAVA»