Ich habe ein verblüffendes und frustrierendes
Problem mit einer Spring-Boot-Anwendung, bei der ein JDK 24 AOT-Cache (vor der Zeit) verwendet wird (dies ist keine native Kompilierung, sondern nur versucht, den AOT-Cache zu verwenden). Die Anwendung hängt häufig beim Start beim Ausführen mit dem AOT -Cache. Ich suche Ratschläge zur Diagnose und vor allem dieses Problem. Ich habe einen mehrstufigen Prozess, um den AOT-Cache zu erstellen: < /p>
- Ich baue einen Fat Spring Boot .jar < /code>. -Djarmode = tools .
- Kopieren Sie den ausgepackten Inhalt ( und das lib verzeichnis) to /app.
- Führen Sie die Anwendung als AOTMODE> mit aotMode = record aus und erstellen Sie dann den AOT -Cache mit AOTMODE = create (so etwas wie diese. Dies.
- Das endgültige Containerbild enthält /app/myapp.jar , /app/aot.app (der Cache) und alle/App/lib Bibliotheken. Der benutzerdefinierte Einstiegspunkt ist java -xx: aotcache =/app/app.aot -jar /app/myapp.jar.
Dieses Setup lädt den AOT -Cache erfolgreich. Das Startverhalten der Anwendung ist jedoch inkonsistent: In meinen Tests beginnt es nur in etwa 20% der Fälle erfolgreich (wie gewünscht und erwartet) und hängt die anderen 80% der Zeit (also, die Startzeit ist ... unendlich). Ein Thread -Dump zeigt konsequent auf die Methode von java.lang.invoke.directMethodHandleeholder.invokestatic . Der Thread -Status ist ausgeführt , aber er scheint keinen Fortschritt zu machen. Der Thread -Dump sieht so aus: < /p>
Code: Select all
"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([email protected]/DirectMethodHandleHolder)
at java.lang.invoke.DelegatingMethodHandleHolder.delegate ([email protected]/DelegatingMethodHandleHolder)
at java.lang.invoke.BootstrapMethodInvoker.invoke([email protected]/BootstrapMethodInvoker.java:102)
at java.lang.invoke.CallSite.makeSite ([email protected]/CallSite.java:310)
at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl([email protected]/MethodHandleNatives.java:250)
at java.lang.invoke.MethodHandleNatives.linkCallSite ([email protected]/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>
Ich habe einige Warnungen beim Erstellen des AOT -Cache bemerkt, obwohl ich sie nicht mit dem Hanging -Problem korrelieren konnte. Auszüge: < /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
Fragen
Hat jemand auf ein ähnliches
Problem mit Spring Boot, JDK 24 gestoßen und aot Caches? AOT -Cache -Kreation Warnungen werden mit dem Hang verwandt, und wenn ja, wie kann ich sie ansprechen?>
Ich habe ein verblüffendes und frustrierendes [url=viewtopic.php?t=26065]Problem[/url] mit einer Spring-Boot-Anwendung, bei der ein JDK 24 AOT-Cache (vor der Zeit) verwendet wird (dies ist keine native Kompilierung, sondern nur versucht, den AOT-Cache zu verwenden). Die Anwendung hängt häufig beim Start beim Ausführen mit dem AOT -Cache. Ich suche Ratschläge zur Diagnose und vor allem dieses Problem. Ich habe einen mehrstufigen Prozess, um den AOT-Cache zu erstellen: < /p>
[list]
[*] Ich baue einen Fat Spring Boot .jar < /code>. -Djarmode = tools .
[*] Kopieren Sie den ausgepackten Inhalt ([code]myapp.jar[/code] und das lib verzeichnis) to /app.
[*] Führen Sie die Anwendung als AOTMODE> mit aotMode = record aus und erstellen Sie dann den AOT -Cache mit AOTMODE = create (so etwas wie diese. Dies.
[*] Das endgültige Containerbild enthält /app/myapp.jar , /app/aot.app (der Cache) und alle/App/lib Bibliotheken. Der benutzerdefinierte Einstiegspunkt ist java -xx: aotcache =/app/app.aot -jar /app/myapp.jar.
[/list]
Dieses Setup lädt den AOT -Cache erfolgreich. Das Startverhalten der Anwendung ist jedoch inkonsistent: In meinen Tests beginnt es nur in etwa 20% der Fälle erfolgreich (wie gewünscht und erwartet) und hängt die anderen 80% der Zeit (also, die Startzeit ist ... unendlich). Ein Thread -Dump zeigt konsequent auf die Methode von java.lang.invoke.directMethodHandleeholder.invokestatic . Der Thread -Status ist ausgeführt , aber er scheint keinen Fortschritt zu machen. Der Thread -Dump sieht so aus: < /p>
[code]"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(
[email protected]/DirectMethodHandleHolder)
at java.lang.invoke.DelegatingMethodHandleHolder.delegate (
[email protected]/DelegatingMethodHandleHolder)
at java.lang.invoke.BootstrapMethodInvoker.invoke(
[email protected]/BootstrapMethodInvoker.java:102)
at java.lang.invoke.CallSite.makeSite (
[email protected]/CallSite.java:310)
at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(
[email protected]/MethodHandleNatives.java:250)
at java.lang.invoke.MethodHandleNatives.linkCallSite (
[email protected]/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>
Ich habe einige Warnungen beim Erstellen des AOT -Cache bemerkt, obwohl ich sie nicht mit dem Hanging -Problem korrelieren konnte. Auszüge: < /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
[/code]
[b] Fragen [/b]
Hat jemand auf ein ähnliches [url=viewtopic.php?t=26065]Problem[/url] mit Spring Boot, JDK 24 gestoßen und aot Caches? AOT -Cache -Kreation Warnungen werden mit dem Hang verwandt, und wenn ja, wie kann ich sie ansprechen?>