quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.58k stars 2.63k forks source link

Netty's `PlatformDependent` and `PlatformDependent0` class initializers require reflective access to some classes ? #37626

Open zakkak opened 9 months ago

zakkak commented 9 months ago

Describe the bug

In https://github.com/quarkusio/quarkus/pull/37347 we moved PlatformDependent and PlatformDependent0 classes to run-time-initialization as they are PlatformDependent and thus need to be initialized on the target platform. However, their initializers seem to rely on reflection to initialize a number of fields which leads to issues when the reflective accesses fail due to Quarkus not registering the necessary classes and methods for reflection.

Issue originally reported in https://github.com/Karm/mandrel-integration-tests/issues/236

Expected behavior

Netty's PlatformDependent and PlatformDependent0 classes should be initialized based on the actual availability of methods and classes and not depending on the reflection configuration.

Actual behavior

Netty's PlatformDependent and PlatformDependent0 classes are initialized differently than expected because reflective accesses fail.

How to Reproduce?

wget "https://code.quarkus.io/d?e=resteasy-reactive&cn=code.quarkus.io" -O code.zip
unzip code.zip
cd code-with-quarkus
./mvnw -Dnative clean verify -Dquarkus.native.monitoring=jfr

Output of uname -a or ver

No response

Output of java -version

21

Mandrel or GraalVM version (if different from Java)

23.1.1.0-Final

Quarkus version or git rev

3.6.1 and af6d3d75f882fe3a9969162bbd0ecc85450c7da6

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

quarkus-bot[bot] commented 9 months ago

/cc @Karm (mandrel), @galderz (mandrel)

ThoSap commented 8 months ago

I have the same issue with Quarkus 3.6.4, native-image built with multi-stage Dockerfile based on quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:jdk-21.0.1 with the following application.properties, built on a Raspberry Pi 4 Model B (linux/arm64 -> aarch64).

Environment

Output of uname -a

Linux rpi4 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

Output of java -version

openjdk version "21.0.1" 2023-10-17 OpenJDK Runtime Environment GraalVM CE 21.0.1+12.1 (build 21.0.1+12-jvmci-23.1-b19) OpenJDK 64-Bit Server VM GraalVM CE 21.0.1+12.1 (build 21.0.1+12-jvmci-23.1-b19, mixed mode, sharing)

Quarkus version

3.6.4

Build tool (ie. output of mvnw --version or gradlew --version)

Gradle 8.5

Additional information

application.properties (I use application.yml, properties format copied from build output)
...
quarkus.package.type=native
quarkus.ssl.native=true
quarkus.native.additional-build-args=-march=native,-J--enable-preview
quarkus.native.additional-build-args[0]=-march=native
quarkus.native.additional-build-args[1]=-J--enable-preview
quarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:jdk-21.0.1
quarkus.native.compression.level=6
quarkus.native.container-build=false
quarkus.native.container-runtime=docker
quarkus.native.monitoring=jfr,jvmstat,heapdump
quarkus.native.monitoring[0]=jfr
quarkus.native.monitoring[1]=jvmstat
quarkus.native.monitoring[2]=heapdump
quarkus.native.native-image-xmx=6g
...
Snippet of the build output
The following extensions have required native-image to allow run-time resolution of classes: {quarkus-jdbc-oracle}. This is a global requirement which might have unexpected effects on other extensions as well, and is a hint of the library needing some additional refactoring to better support GraalVM native-image. In the case of 3rd party dependencies and/or proprietary code there is not much we can do - please ask for support to your library vendor. If you incur in any problem with other Quarkus extensions, please try reproducing the problem without these extensions first.
Building native image source jar: /code/build/ffs-3.19.1-native-image-source-jar/ffs-3.19.1-runner.jar
Building native image from /code/build/ffs-3.19.1-native-image-source-jar/ffs-3.19.1-runner.jar
Running Quarkus native-image plugin on GRAALVM 23.1 JDK 21.0.1+12-jvmci-23.1-b19
/opt/graalvm/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-DCoordinatorEnvironmentBean.transactionStatusManagerEnable=false -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dlogging.initial-configurator.min-level=500 -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=3 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Duser.language=en -J-Duser.country=US -J-Dfile.encoding=UTF-8 --features=io.quarkus.runner.Feature,io.quarkus.runtime.graal.DisableLoggingFeature,io.quarkus.jdbc.postgresql.runtime.graal.SQLXMLFeature -J--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED -J--add-opens=java.base/java.text=ALL-UNNAMED -J--add-opens=java.base/java.io=ALL-UNNAMED -J--add-opens=java.base/java.lang.invoke=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -H:+UnlockExperimentalVMOptions -H:BuildOutputJSONFile=ffs-3.19.1-runner-build-output-stats.json -H:-UnlockExperimentalVMOptions --strict-image-heap -march=native -J--enable-preview -H:+UnlockExperimentalVMOptions -H:+AllowFoldMethods -H:-UnlockExperimentalVMOptions -J-Djava.awt.headless=true --no-fallback -H:+UnlockExperimentalVMOptions -H:+ReportExceptionStackTraces -H:-UnlockExperimentalVMOptions -J-Xmx6g -H:-AddAllCharsets --enable-url-protocols=http,https -H:NativeLinkerOption=-no-pie --enable-monitoring=heapdump,jfr,jvmstat -H:+UnlockExperimentalVMOptions -H:-UseServiceLoaderFeature -H:-UnlockExperimentalVMOptions -J--add-exports=org.graalvm.nativeimage/org.graalvm.nativeimage.impl=ALL-UNNAMED --exclude-config io\.netty\.netty-codec /META-INF/native-image/io\.netty/netty-codec/generated/handlers/reflect-config\.json --exclude-config io\.netty\.netty-handler /META-INF/native-image/io\.netty/netty-handler/generated/handlers/reflect-config\.json --exclude-config com\.oracle\.database\.jdbc /META-INF/native-image/native-image\.properties --exclude-config com\.oracle\.database\.jdbc /META-INF/native-image/reflect-config\.json ffs-3.19.1-runner -jar ffs-3.19.1-runner.jar
Warning: Using a deprecated option --allow-incomplete-classpath from 'META-INF/native-image/software.amazon.awssdk/netty-nio-client/native-image.properties' in 'file:///code/build/ffs-3.19.1-native-image-source-jar/lib/software.amazon.awssdk.netty-nio-client-2.21.29.jar'. Allowing an incomplete classpath is now the default. Use --link-at-build-time to report linking errors at image build time for a class or package.
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/io.micrometer/micrometer-core/reflect-config.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/io.netty/netty-transport/reflection-config.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
========================================================================================================================
GraalVM Native Image: Generating 'ffs-3.19.1-runner' (executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
Warning: Feature class oracle.nativeimage.NativeImageFeature is annotated with the deprecated annotation @AutomaticFeature. Support for this annotation will be removed in a future version of GraalVM. Applications should register a feature using the option --features=oracle.nativeimage.NativeImageFeature
[1/8] Initializing...                                                                                   (48.5s @ 0.19GB)
 Java version: 21.0.1+12, vendor version: GraalVM CE 21.0.1+12.1
 Graal compiler: optimization level: 2, target machine: native
 C compiler: gcc (redhat, aarch64, 8.5.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 6 user-specific feature(s):
 - com.oracle.svm.thirdparty.gson.GsonFeature
 - io.quarkus.jdbc.postgresql.runtime.graal.SQLXMLFeature
 - io.quarkus.runner.Feature: Auto-generated class by Quarkus from the existing extensions
 - io.quarkus.runtime.graal.DisableLoggingFeature: Disables INFO logging during the analysis phase
 - oracle.nativeimage.NativeImageFeature
 - org.eclipse.angus.activation.nativeimage.AngusActivationFeature
------------------------------------------------------------------------------------------------------------------------
 4 experimental option(s) unlocked:
 - '-H:+AllowFoldMethods' (origin(s): command line)
 - '-H:BuildOutputJSONFile' (origin(s): command line)
 - '-H:-UseServiceLoaderFeature' (origin(s): command line)
 - '-H:ReflectionConfigurationResources' (origin(s): 'META-INF/native-image/io.netty/netty-transport/native-image.properties' in 'file:///code/build/ffs-3.19.1-native-image-source-jar/lib/io.netty.netty-transport-4.1.100.Final.jar', 'META-INF/native-image/io.micrometer/micrometer-core/native-image.properties' in 'file:///code/build/ffs-3.19.1-native-image-source-jar/lib/io.micrometer.micrometer-core-1.11.5.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 5.33GB of memory (69.9% of 7.63GB system memory, set via '-Xmx6g')
 - 4 thread(s) (100.0% of 4 available processor(s), determined at start)
01:24:36,253 INFO  [org.joo.Constants]

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@  @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@
@@@@@@@@@@@@@@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@  @@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@        @@  @  @  @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  Thank you for using jOOQ 3.19.1 (Build date: 2023-12-20T14:13:25Z)

01:24:36,256 INFO  [org.joo.Constants]

jOOQ tip of the day: Multi tenancy is best implemented in jOOQ using runtime schema and table mapping: https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/custom-settings/settings-render-mapping/

[2/8] Performing analysis...  [******]                                                                 (698.6s @ 3.18GB)
   31,595 reachable types   (91.3% of   34,623 total)
   50,273 reachable fields  (60.5% of   83,029 total)
  155,044 reachable methods (55.7% of  278,302 total)
    8,961 types, 2,138 fields, and 11,462 methods registered for reflection
       86 types,   108 fields, and    63 methods registered for JNI access
        4 native libraries: dl, pthread, rt, z
[3/8] Building universe...                                                                              (70.6s @ 3.41GB)
[4/8] Parsing methods...      [********]                                                                (64.6s @ 1.85GB)
[5/8] Inlining methods...     [****]                                                                    (27.7s @ 2.35GB)
[6/8] Compiling methods...    [********************]                                                   (422.1s @ 2.63GB)
[7/8] Layouting methods...    [*******]                                                                 (50.2s @ 3.19GB)
[8/8] Creating image...       [***********]                                                            (138.3s @ 3.55GB)
  60.71MB (35.01%) for code area:   102,293 compilation units
 112.36MB (64.79%) for image heap:  776,855 objects and 4,825 resources
 359.70kB ( 0.20%) for other data
 173.42MB in total
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area:                                Top 10 object types in image heap:
  13.11MB java.base                                           39.85MB byte[] for embedded resources
   7.53MB ffs-3.19.1-runner.jar                               20.86MB byte[] for code metadata
   5.53MB m.oracle.database.jdbc.ojdbc11-23.3.0.23.09.jar     10.48MB byte[] for java.lang.String
   4.84MB org.jooq.jooq-3.19.1.jar                             9.45MB java.lang.Class
   3.09MB java.xml                                             6.51MB java.lang.String
   2.05MB svm.jar (Native Image)                               2.89MB com.oracle.svm.core.hub.DynamicHubCompanion
   1.80MB c.f.jackson.core.jackson-databind-2.15.3.jar         2.05MB byte[] for reflection metadata
   1.26MB modified-io.vertx.vertx-core-4.4.6.jar               1.57MB byte[] for general heap data
   1.16MB org.postgresql.postgresql-42.6.0.jar                 1.30MB java.lang.Object[]
   1.12MB org.flywaydb.flyway-core-9.22.3.jar                  1.30MB java.lang.String[]
  18.65MB for 201 more packages                               16.10MB for 8680 more object types
------------------------------------------------------------------------------------------------------------------------
Recommendations:
 HEAP: Set max heap for improved and more predictable memory usage.
------------------------------------------------------------------------------------------------------------------------
                      188.5s (12.3% of total time) in 278 GCs | Peak RSS: 5.58GB | CPU load: 3.23
------------------------------------------------------------------------------------------------------------------------
Produced artifacts:
 /code/build/ffs-3.19.1-native-image-source-jar/ffs-3.19.1-runner (executable)
 /code/build/ffs-3.19.1-native-image-source-jar/ffs-3.19.1-runner-build-output-stats.json (build_info)
========================================================================================================================
Finished generating 'ffs-3.19.1-runner' in 25m 26s.
objcopy --strip-debug ffs-3.19.1-runner
Executing /usr/bin/upx -6 /code/build/ffs-3.19.1-runner
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
 181717072 ->  59454664   32.72%   linux/arm64   ffs-3.19.1-runner

Packed 1 file.
Native executable compressed: /code/build/ffs-3.19.1-runner
Error message when starting the native executable on the very same Raspberry Pi 4 Model B, where the build was made
thosap@pihole:~/Git/web/build $ QUARKUS_LOG_LEVEL=DEBUG FFS_OIDC_KEYCLOAK_BASE_URL=https://ffs.example.com/auth QUARKUS_OIDC_AUTH_SERVER_URL=https://ffs.example.com/auth/realms/ffs QUARKUS_DATASOURCE_FFS_JDBC_URL=jdbc:postgresql://localhost:5432/ffs QUARKUS_DATASOURCE_FFS_USERNAME=quarkus QUARKUS_DATASOURCE_FFS_PASSWORD=quarkus ./application-runner
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2024-01-03T04:07:40.743Z DEBUG [PlatformDependent0] (Thread-1) -Dio.netty.noUnsafe: false
2024-01-03T04:07:40.744Z DEBUG [PlatformDependent0] (Thread-1) Java version: 21
2024-01-03T04:07:40.744Z DEBUG [PlatformDependent0] (Thread-1) java.nio.Buffer.address: available
2024-01-03T04:07:40.744Z DEBUG [PlatformDependent0] (Thread-1) java.nio.Bits.unaligned: available, true
### >>> ### 2024-01-03T04:07:40.745Z DEBUG [PlatformDependent0] (Thread-1) java.nio.DirectByteBuffer.<init>(long, {int,long}): unavailable
2024-01-03T04:07:40.745Z DEBUG [PlatformDependent] (Thread-1) sun.misc.Unsafe: available
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) maxDirectMemory: 6553075712 bytes (maybe)
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) -Dio.netty.tmpdir: /tmp (java.io.tmpdir)
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) -Dio.netty.bitMode: 64 (sun.arch.data.model)
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) -Dio.netty.maxDirectMemory: -1 bytes
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) -Dio.netty.uninitializedArrayAllocationThreshold: -1
2024-01-03T04:07:40.746Z DEBUG [PlatformDependent] (Thread-1) -Dio.netty.noPreferDirect: false
2024-01-03T04:07:40.747Z DEBUG [DefaultChannelId] (Thread-1) -Dio.netty.processId: 26807 (auto-detected)
2024-01-03T04:07:40.747Z DEBUG [DefaultChannelId] (Thread-1) -Dio.netty.machineId: 97:92:6d:e4:ea:e8:37:67 (user-set)
2024-01-03T04:07:40.750Z DEBUG [VertxCoreRecorder] (main) Vert.x Cache configured to: /tmp/vertx-cache/9193826183233161673
2024-01-03T04:07:40.754Z DEBUG [GlobalEventExecutor] (main) -Dio.netty.globalEventExecutor.quietPeriodSeconds: 1
2024-01-03T04:07:40.755Z DEBUG [VertxCoreRecorder] (main) Vertx has Native Transport Enabled: false
2024-01-03T04:07:40.756Z INFO  [OidcCommonUtils] (main) Connecting to OpenId Connect Provider for up to 10 times every 2 seconds
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.numHeapArenas: 8
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.numDirectArenas: 8
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.pageSize: 8192
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.maxOrder: 3
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.chunkSize: 65536
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.smallCacheSize: 256
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.normalCacheSize: 64
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.maxCachedBufferCapacity: 32768
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.cacheTrimInterval: 8192
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.cacheTrimIntervalMillis: 0
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.useCacheForAllThreads: false
2024-01-03T04:07:40.759Z DEBUG [PooledByteBufAllocator] (vert.x-eventloop-thread-1) -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
2024-01-03T04:07:40.759Z DEBUG [ByteBufUtil] (vert.x-eventloop-thread-1) -Dio.netty.allocator.type: pooled
2024-01-03T04:07:40.760Z DEBUG [ByteBufUtil] (vert.x-eventloop-thread-1) -Dio.netty.threadLocalDirectBufferSize: 0
2024-01-03T04:07:40.760Z DEBUG [ByteBufUtil] (vert.x-eventloop-thread-1) -Dio.netty.maxThreadLocalCharBufferSize: 16384
2024-01-03T04:07:40.845Z DEBUG [security] (vert.x-eventloop-thread-1) X509Certificate: Alg:SHA256withRSA, Serial:4bd1fcf4b66fe7a213aeb9c548b8ae6b, Subject:CN=example.com, Issuer:CN=GTS CA 1P5, O=Google Trust Services LLC, C=US, Key type:RSA, Length:2048, Cert Id:2246955195, Valid from:12/19/23, 6:34 PM, Valid until:3/18/24, 6:34 PM
2024-01-03T04:07:40.845Z DEBUG [security] (vert.x-eventloop-thread-1) X509Certificate: Alg:SHA256withRSA, Serial:203bc50a32753f0918022edf1, Subject:CN=GTS CA 1P5, O=Google Trust Services LLC, C=US, Issuer:CN=GTS Root R1, O=Google Trust Services LLC, C=US, Key type:RSA, Length:2048, Cert Id:1967423701, Valid from:8/13/20, 2:00 AM, Valid until:9/30/27, 2:00 AM
2024-01-03T04:07:40.845Z DEBUG [security] (vert.x-eventloop-thread-1) X509Certificate: Alg:SHA256withRSA, Serial:77bd0d6cdb36f91aea210fc4f058d30d, Subject:CN=GTS Root R1, O=Google Trust Services LLC, C=US, Issuer:CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE, Key type:RSA, Length:4096, Cert Id:1081005260, Valid from:6/19/20, 2:00 AM, Valid until:1/28/28, 1:00 AM
2024-01-03T04:07:40.850Z DEBUG [security] (vert.x-eventloop-thread-1) ValidationChain: 657172038, 1967423701, 2246955195
2024-01-03T04:07:40.852Z DEBUG [security] (vert.x-eventloop-thread-1)  TLSHandshake: ffs.example.com:443, TLSv1.3, TLS_AES_256_GCM_SHA384, 2246955195
2024-01-03T04:07:40.856Z DEBUG [SslHandler] (vert.x-eventloop-thread-1) [id: 0x91ed90d6, L:/192.168.1.5:42930 - R:ffs.example.com/127.0.0.1:443] HANDSHAKEN: protocol:TLSv1.3 cipher suite:TLS_AES_256_GCM_SHA384
2024-01-03T04:07:40.857Z WARN  [OidcCommonUtils] (vert.x-eventloop-thread-1) OIDC Server is not available:: java.lang.NullPointerException
        at io.netty.util.internal.PlatformDependent0.newDirectBuffer(PlatformDependent0.java:614)
        at io.netty.util.internal.PlatformDependent0.allocateDirectNoCleaner(PlatformDependent0.java:579)
        at io.netty.util.internal.PlatformDependent.allocateDirectNoCleaner(PlatformDependent.java:774)
        at io.netty.buffer.UnpooledUnsafeNoCleanerDirectByteBuf.allocateDirect(UnpooledUnsafeNoCleanerDirectByteBuf.java:30)
        at io.netty.buffer.UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf.allocateDirect(UnpooledByteBufAllocator.java:186)
        at io.netty.buffer.UnpooledDirectByteBuf.<init>(UnpooledDirectByteBuf.java:64)
        at io.netty.buffer.UnpooledUnsafeDirectByteBuf.<init>(UnpooledUnsafeDirectByteBuf.java:41)
        at io.netty.buffer.UnpooledUnsafeNoCleanerDirectByteBuf.<init>(UnpooledUnsafeNoCleanerDirectByteBuf.java:25)
        at io.netty.buffer.UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf.<init>(UnpooledByteBufAllocator.java:181)
        at io.netty.buffer.UnpooledByteBufAllocator.newDirectBuffer(UnpooledByteBufAllocator.java:91)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)
        at io.netty.buffer.Unpooled.directBuffer(Unpooled.java:128)
        at io.netty.handler.codec.http.HttpObjectEncoder.<clinit>(HttpObjectEncoder.java:59)
        at java.base@21.0.1/java.lang.Class.ensureInitialized(DynamicHub.java:595)
        at java.base@21.0.1/java.lang.Class.ensureInitialized(DynamicHub.java:595)
        at io.netty.handler.codec.http.HttpClientCodec.<init>(HttpClientCodec.java:151)
        at io.netty.handler.codec.http.HttpClientCodec.<init>(HttpClientCodec.java:139)
        at io.netty.handler.codec.http.HttpClientCodec.<init>(HttpClientCodec.java:128)
        at io.netty.handler.codec.http.HttpClientCodec.<init>(HttpClientCodec.java:118)
        at io.vertx.core.http.impl.HttpChannelConnector.applyHttp1xConnectionOptions(HttpChannelConnector.java:176)
        at io.vertx.core.http.impl.HttpChannelConnector.wrap(HttpChannelConnector.java:124)
        at io.vertx.core.http.impl.HttpChannelConnector.lambda$httpConnect$0(HttpChannelConnector.java:146)
        at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:38)
        at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
        at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
        at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
        at io.vertx.core.Promise.complete(Promise.java:66)
        at io.vertx.core.net.impl.NetClientImpl.lambda$connected$9(NetClientImpl.java:338)
        at io.vertx.core.net.impl.VertxHandler.setConnection(VertxHandler.java:82)
        at io.vertx.core.net.impl.VertxHandler.handlerAdded(VertxHandler.java:88)
        at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
        at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
        at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:223)
        at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:195)
        at io.vertx.core.net.impl.NetClientImpl.connected(NetClientImpl.java:340)
        at io.vertx.core.net.impl.NetClientImpl.lambda$connectInternal2$3(NetClientImpl.java:302)
        at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:277)
        at io.vertx.core.net.impl.ChannelProvider$1.userEventTriggered(ChannelProvider.java:123)
        at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:400)
        at io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered(AbstractChannelHandlerContext.java:376)
        at io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered(AbstractChannelHandlerContext.java:368)
        at io.netty.handler.ssl.SslHandler.setHandshakeSuccess(SslHandler.java:1936)
        at io.netty.handler.ssl.SslHandler.wrapNonAppData(SslHandler.java:998)
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1507)
        at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1334)
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1383)
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base@21.0.1/java.lang.Thread.runWith(Thread.java:1596)
        at java.base@21.0.1/java.lang.Thread.run(Thread.java:1583)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)

2024-01-03T04:07:40.858Z WARN  [OidcRecorder] (vert.x-eventloop-thread-1) OIDC server is not available at the 'https://ffs.example.com/auth/realms/ffs' URL. Please make sure it is correct. Note it has to end with a realm value if you work with Keycloak, for example: 'https://localhost:8180/auth/realms/quarkus'
2024-01-03T04:07:40.858Z WARN  [OidcRecorder] (vert.x-eventloop-thread-1) Tenant 'Default': 'OIDC Server is not available'. OIDC server is not available yet, an attempt to connect will be made during the first request. Access to resources protected by this tenant may fail if OIDC server will not become available
2024-01-03T04:07:40.860Z DEBUG [jta] (main) Setting up node identifiers '[quarkus]' for which recovery will be performed
2024-01-03T04:07:40.885Z FINE  [JsonProvider] (main) Checking system property jakarta.json.provider
2024-01-03T04:07:40.886Z FINE  [JsonProvider] (main) Checking ServiceLoader
2024-01-03T04:07:40.886Z FINE  [JsonProvider] (main) Trying to create the platform default provider
2024-01-03T04:07:40.886Z FINE  [JsonProvider] (main) Checking system property jakarta.json.provider
2024-01-03T04:07:40.887Z FINE  [JsonProvider] (main) Checking ServiceLoader
2024-01-03T04:07:40.887Z FINE  [JsonProvider] (main) Trying to create the platform default provider
2024-01-03T04:07:40.891Z DEBUG [DataSources] (main) Started datasource ffs connected to jdbc:postgresql://localhost:5432/ffs
2024-01-03T04:07:40.892Z FINE  [Driver] (agroal-11) Loading driver configuration via classloader jdk.internal.loader.ClassLoaders$AppClassLoader@c818063
2024-01-03T04:07:40.893Z FINE  [Driver] (agroal-11) Connecting with URL: jdbc:postgresql://localhost:5432/ffs
2024-01-03T04:07:40.893Z FINE  [PgConnection] (agroal-11) PostgreSQL JDBC Driver 42.6.0
2024-01-03T04:07:40.893Z FINE  [PgConnection] (agroal-11)   setDefaultFetchSize = 0
2024-01-03T04:07:40.893Z FINE  [PgConnection] (agroal-11)   setPrepareThreshold = 5
2024-01-03T04:07:40.893Z FINE  [ConnectionFactoryImpl] (agroal-11) Trying to establish a protocol version 3 connection to localhost:5432
2024-01-03T04:07:40.894Z FINE  [ConnectionFactoryImpl] (agroal-11) Receive Buffer Size is 65,536
2024-01-03T04:07:40.895Z FINE  [ConnectionFactoryImpl] (agroal-11) Send Buffer Size is 1,313,280
2024-01-03T04:07:40.912Z DEBUG [QuarkusPathLocationScanner] (main) Locations: [classpath:db/release1.0/migrations]
2024-01-03T04:07:40.912Z DEBUG [QuarkusPathLocationScanner] (main) Loading db/release1.0/migrations/views/.gitkeep
2024-01-03T04:07:40.912Z DEBUG [QuarkusPathLocationScanner] (main) Loading db/release1.0/migrations/data/R__mst_email_template_verification_email.sql
...
2024-01-03T04:07:40.913Z DEBUG [QuarkusPathLocationScanner] (main) Loading db/release1.0/migrations/data/R__mst_location.sql
2024-01-03T04:07:40.915Z FINE  [VersionPrinter] (main) Scanning for classpath resources at 'classpath:db/callback' ...
2024-01-03T04:07:40.915Z FINE  [VersionPrinter] (main) Determining location urls for classpath:db/callback using ClassLoader jdk.internal.loader.ClassLoaders$AppClassLoader@c818063 ...
2024-01-03T04:07:40.915Z FINE  [VersionPrinter] (main) Unable to resolve location classpath:db/callback.
2024-01-03T04:07:40.916Z INFO  [VersionPrinter] (main) Flyway Community Edition 9.22.3 by Redgate
2024-01-03T04:07:40.916Z INFO  [VersionPrinter] (main) See release notes here: https://rd.gt/416ObMi
2024-01-03T04:07:40.916Z INFO  [VersionPrinter] (main)
2024-01-03T04:07:40.916Z DEBUG [FlywayRecorder] (main) Filtering out resource: db/release1.0/migrations/views/.gitkeep (filename: .gitkeep)
2024-01-03T04:07:40.916Z FINE  [ResourceNameValidator] (main) Validating R__mst_email_template_verification_email.sql
...
2024-01-03T04:07:40.918Z FINE  [ResourceNameValidator] (main) Validating R__mst_location.sql
2024-01-03T04:07:40.920Z INFO  [FlywayExecutor] (main) Database: jdbc:postgresql://localhost:5432/ffs (PostgreSQL 15.5)
2024-01-03T04:07:40.920Z FINE  [FlywayExecutor] (main) Driver: PostgreSQL JDBC Driver 42.6.0
2024-01-03T04:07:40.921Z FINE  [FlywayExecutor] (main) DDL Transactions Supported: true
2024-01-03T04:07:40.921Z FINE  [SchemaHistoryFactory] (main) Schemas: ffs
2024-01-03T04:07:40.921Z FINE  [SchemaHistoryFactory] (main) Default schema: ffs
2024-01-03T04:07:40.925Z FINE  [SqlScriptCallbackFactory] (main) Scanning for SQL callbacks ...
2024-01-03T04:07:40.926Z DEBUG [FlywayRecorder] (main) Filtering out resource: db/release1.0/migrations/views/.gitkeep (filename: .gitkeep)
2024-01-03T04:07:40.930Z FINE  [DbValidate] (main) Validating migrations ...
2024-01-03T04:07:40.931Z FINE  [PgConnection] (main)   setAutoCommit = false
2024-01-03T04:07:40.931Z DEBUG [FlywayRecorder] (main) Filtering out resource: db/release1.0/migrations/views/.gitkeep (filename: .gitkeep)
2024-01-03T04:07:40.931Z DEBUG [FlywayRecorder] (main) Filtering out resource: db/release1.0/migrations/data/R__mst_email_template_verification_email.sql (filename: R__mst_email_template_verification_email.sql)
...
2024-01-03T04:07:41.118Z DEBUG [FlywayRecorder] (main) Filtering out resource: db/release1.0/migrations/data/R__mst_location.sql (filename: R__mst_location.sql)
2024-01-03T04:07:41.128Z FINE  [PgConnection] (main)   setAutoCommit = true
2024-01-03T04:07:41.128Z INFO  [DbValidate] (main) Successfully validated 21 migrations (execution time 00:00.197s)
2024-01-03T04:07:41.128Z FINE  [PgConnection] (main)   setAutoCommit = false
2024-01-03T04:07:41.130Z FINE  [DbSchemas] (main) Skipping creation of existing schema: "ffs"
2024-01-03T04:07:41.131Z FINE  [PgConnection] (main)   setAutoCommit = true
2024-01-03T04:07:41.133Z FINE  [Driver] (agroal-11) Connecting with URL: jdbc:postgresql://localhost:5432/ffs
2024-01-03T04:07:41.134Z FINE  [PgConnection] (agroal-11) PostgreSQL JDBC Driver 42.6.0
2024-01-03T04:07:41.134Z FINE  [PgConnection] (agroal-11)   setDefaultFetchSize = 0
2024-01-03T04:07:41.134Z FINE  [PgConnection] (agroal-11)   setPrepareThreshold = 5
2024-01-03T04:07:41.134Z FINE  [ConnectionFactoryImpl] (agroal-11) Trying to establish a protocol version 3 connection to localhost:5432
2024-01-03T04:07:41.135Z FINE  [ConnectionFactoryImpl] (agroal-11) Receive Buffer Size is 65,536
2024-01-03T04:07:41.135Z FINE  [ConnectionFactoryImpl] (agroal-11) Send Buffer Size is 1,313,280
2024-01-03T04:07:41.151Z FINE  [PgConnection] (main)   setAutoCommit = false
2024-01-03T04:07:41.157Z INFO  [DbMigrate] (main) Current version of schema "ffs": 1.6.1
2024-01-03T04:07:41.158Z FINE  [PgConnection] (main)   setAutoCommit = true
2024-01-03T04:07:41.158Z INFO  [DbMigrate] (main) Schema "ffs" is up to date. No migration necessary.
2024-01-03T04:07:41.159Z FINE  [PgConnection] (main)   setAutoCommit = false
2024-01-03T04:07:41.162Z FINE  [PgConnection] (main)   setAutoCommit = true
2024-01-03T04:07:41.163Z FINE  [PgConnection] (main)   setAutoCommit = false
2024-01-03T04:07:41.165Z FINE  [PgConnection] (main)   setAutoCommit = true
2024-01-03T04:07:41.165Z FINE  [FlywayExecutor] (main) Memory usage: 44 of 6249M
2024-01-03T04:07:41.166Z DEBUG [MicrometerRecorder] (main) Discovered global MeterFilters : [io.micrometer.core.instrument.config.MeterFilter$9@2adfdc23, io.micrometer.core.instrument.config.MeterFilter$9@1d0e4b4d, io.micrometer.core.instrument.config.MeterFilter$9@a2469b8, io.micrometer.core.instrument.config.MeterFilter$9@3eb9bedd]
2024-01-03T04:07:41.166Z DEBUG [MicrometerRecorder] (main) Discovered MeterFilters for class io.micrometer.prometheus.PrometheusMeterRegistry: []
2024-01-03T04:07:41.166Z DEBUG [MicrometerRecorder] (main) Discovered MeterFilters for class io.quarkus.micrometer.runtime.registry.json.JsonMeterRegistry: []
2024-01-03T04:07:41.167Z DEBUG [MicrometerRecorder] (main) Discovered global MeterRegistryCustomizer : []
2024-01-03T04:07:41.167Z DEBUG [MicrometerRecorder] (main) Configuring Micrometer registries : [class io.micrometer.prometheus.PrometheusMeterRegistry, class io.quarkus.micrometer.runtime.registry.json.JsonMeterRegistry]
2024-01-03T04:07:41.167Z DEBUG [MicrometerRecorder] (main) Discovered MeterRegistryCustomizer for class io.micrometer.prometheus.PrometheusMeterRegistry: []
2024-01-03T04:07:41.167Z DEBUG [MicrometerRecorder] (main) Discovered MeterRegistryCustomizer for class io.quarkus.micrometer.runtime.registry.json.JsonMeterRegistry: []
2024-01-03T04:07:41.167Z DEBUG [MicrometerRecorder] (main) Adding configured registry class io.micrometer.prometheus.PrometheusMeterRegistry
2024-01-03T04:07:41.169Z DEBUG [MicrometerRecorder] (main) Adding configured registry class io.quarkus.micrometer.runtime.registry.json.JsonMeterRegistry
2024-01-03T04:07:41.178Z DEBUG [QuinoaRecorder] (main) Quinoa is ignoring paths starting with: /api/v1/, /api/
2024-01-03T04:07:41.178Z DEBUG [QuinoaUIResourceHandler] (main) Quinoa UI encoded: '/assets/i18n/it.json'
2024-01-03T04:07:41.178Z DEBUG [QuinoaUIResourceHandler] (main) Quinoa UI encoded: '/assets/layout/images/profile/sunset-snowy-mountains-lofi.webp'
2024-01-03T04:07:41.178Z DEBUG [QuinoaUIResourceHandler] (main) Quinoa UI encoded: '/assets/icons/favicon-16x16.png'
...
2024-01-03T04:07:41.190Z DEBUG [QuinoaUIResourceHandler] (main) Quinoa UI encoded: '/index.html'
2024-01-03T04:07:41.194Z DEBUG [QuinoaUIResourceHandler] (main) Quinoa UI encoded: '/assets/layout/images/header.webp'
2024-01-03T04:07:41.195Z DEBUG [EngineProducer] (main) Initializing Qute [templates: [], tags: [], resolvers: [io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_mod_bd066910099671b808afec3771a44518fddd2bc9, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_getByIndex_657afe9a25009c92a9bdafe71a002284cc5c15d2, io.quarkus.qute.runtime.extensions.OrOperatorTemplateExtensions_Extension_ValueResolver_or_8f1638f5c0cac882965cb238c12ac4185e0c98f6, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_get_61a55da54cd4263e9dff1c28f2ed031026e30ccf, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToInt_c4c2a444b875632d1f05e7e19edee263d5d3e57a, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromInt_c4c2a444b875632d1f05e7e19edee263d5d3e57a, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToLong_9c9ad703eaa32c6f532414cf5a53b74af8f4a460, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromInt_7960693d39b2f712668a26c75b53fda89da3fb49, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_take_61a55da54cd4263e9dff1c28f2ed031026e30ccf, io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_6, io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_7, io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Namespace_Extension_ValueResolver_3442496b96dd01591a8cd44b1eec1368ab728aba_2, io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_plus_e66c3354160ead5dcfb550a04f31e523bc4c1d8a, io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_20fff29d757fefef0946b2d3432680c31e8cb1e1, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_reversed_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca, io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_5, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_first_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca, io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_751439945e2ab1b1668ce644124b107cc3b9867b, io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Namespace_Extension_ValueResolver_3442496b96dd01591a8cd44b1eec1368ab728aba_3, io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_get_bc0571c57a00283edd7750dce31b35b7894dab35, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_takeLast_61a55da54cd4263e9dff1c28f2ed031026e30ccf, io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Namespace_Extension_ValueResolver_714eea0f4c980736bde0065fe73f573487f08e3a_5, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_last_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca, io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_containsKey_c312eb3fc6948f9b67e43528a7682ca853ccafa2, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToLong_b00a071e584486616d898c53585494d0942de97d, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromLong_9c9ad703eaa32c6f532414cf5a53b74af8f4a460, io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_map_2916869ff3e33525b6b33460e43bcf5d56e2e69c, io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_fmtInstance_0e0c8527d491c736ae8021d28078331a20315a36, io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_fmtInstance_6f657fb2a556a9885d398f282d9ed1dab1b37921, io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_orEmpty_49cd7d5d995da0ed2a0b410e1718aafcfdfbec2b, io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_9d2fa65ff1dc33288b60815fc775a809a8f911d2, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromLong_b00a071e584486616d898c53585494d0942de97d, io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToInt_7960693d39b2f712668a26c75b53fda89da3fb49]
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_mod_bd066910099671b808afec3771a44518fddd2bc9
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_getByIndex_657afe9a25009c92a9bdafe71a002284cc5c15d2
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.OrOperatorTemplateExtensions_Extension_ValueResolver_or_8f1638f5c0cac882965cb238c12ac4185e0c98f6
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_get_61a55da54cd4263e9dff1c28f2ed031026e30ccf
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToInt_c4c2a444b875632d1f05e7e19edee263d5d3e57a
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromInt_c4c2a444b875632d1f05e7e19edee263d5d3e57a
2024-01-03T04:07:41.196Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToLong_9c9ad703eaa32c6f532414cf5a53b74af8f4a460
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromInt_7960693d39b2f712668a26c75b53fda89da3fb49
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_take_61a55da54cd4263e9dff1c28f2ed031026e30ccf
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_6
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_7
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Namespace_Extension_ValueResolver_3442496b96dd01591a8cd44b1eec1368ab728aba_2
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_plus_e66c3354160ead5dcfb550a04f31e523bc4c1d8a
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_20fff29d757fefef0946b2d3432680c31e8cb1e1
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_reversed_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca
2024-01-03T04:07:41.197Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.ConfigTemplateExtensions_Namespace_Extension_ValueResolver_dfba7aade0868074c2861c98e2a9a92f3178a51b_5
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_first_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_751439945e2ab1b1668ce644124b107cc3b9867b
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Namespace_Extension_ValueResolver_3442496b96dd01591a8cd44b1eec1368ab728aba_3
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_get_bc0571c57a00283edd7750dce31b35b7894dab35
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_takeLast_61a55da54cd4263e9dff1c28f2ed031026e30ccf
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Namespace_Extension_ValueResolver_714eea0f4c980736bde0065fe73f573487f08e3a_5
2024-01-03T04:07:41.205Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_last_c79dcd7e0c0c2e87acbcdb6425088ca1593854ca
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_containsKey_c312eb3fc6948f9b67e43528a7682ca853ccafa2
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToLong_b00a071e584486616d898c53585494d0942de97d
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromLong_9c9ad703eaa32c6f532414cf5a53b74af8f4a460
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.MapTemplateExtensions_Extension_ValueResolver_map_2916869ff3e33525b6b33460e43bcf5d56e2e69c
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_fmtInstance_0e0c8527d491c736ae8021d28078331a20315a36
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.StringTemplateExtensions_Extension_ValueResolver_fmtInstance_6f657fb2a556a9885d398f282d9ed1dab1b37921
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.CollectionTemplateExtensions_Extension_ValueResolver_orEmpty_49cd7d5d995da0ed2a0b410e1718aafcfdfbec2b
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.TimeTemplateExtensions_Extension_ValueResolver_format_9d2fa65ff1dc33288b60815fc775a809a8f911d2
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_subtractFromLong_b00a071e584486616d898c53585494d0942de97d
2024-01-03T04:07:41.206Z DEBUG [EngineProducer] (main) Added generated value resolver: io.quarkus.qute.runtime.extensions.NumberTemplateExtensions_Extension_ValueResolver_addToInt_7960693d39b2f712668a26c75b53fda89da3fb49
2024-01-03T04:07:41.209Z DEBUG [VertxMeterBinderAdapter] (vert.x-acceptor-thread-0) Create HttpServerMetrics with options io.vertx.core.http.HttpServerOptions@7ddb15c5 and address 0.0.0.0:8080
2024-01-03T04:07:41.260Z INFO  [quarkus] (main) ffs 3.19.1 native (powered by Quarkus 3.6.4) started in 0.600s. Listening on: http://0.0.0.0:8080
2024-01-03T04:07:41.260Z INFO  [quarkus] (main) Profile prod activated.
2024-01-03T04:07:41.260Z INFO  [quarkus] (main) Installed features: [agroal, amazon-s3, cdi, config-yaml, flyway, jdbc-oracle, jdbc-postgresql, mailer, micrometer, narayana-jta, oidc, quinoa, qute, rest-client-reactive, rest-client-reactive-jackson, resteasy-reactive, resteasy-reactive-jackson, resteasy-reactive-qute, security, smallrye-context-propagation, smallrye-health, smallrye-openapi, swagger-ui, vertx]
The Dockerfile.multistage-native
## Stage 1: Build with GraalVM builder image with native capabilities
FROM quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:jdk-21.0.1 AS builder

USER root

RUN microdnf module enable -y nodejs:20 \
 && microdnf install -y findutils nodejs \
 && microdnf clean all -y \
 && [ ! -d /var/cache/yum ] || rm -rf /var/cache/yum \
 # Install pnpm
 && npm install -g pnpm

USER quarkus

COPY --chown=quarkus:quarkus gradle /code/gradle/
COPY --chown=quarkus:quarkus gradlew /code/
COPY --chown=quarkus:quarkus settings.gradle /code/
COPY --chown=quarkus:quarkus gradle.properties /code/
COPY --chown=quarkus:quarkus build.gradle /code/
COPY --chown=quarkus:quarkus src /code/src/

WORKDIR /code

RUN ./gradlew --gradle-user-home /code/.gradle/ --no-daemon quarkusGoOffline \
 && ./gradlew --gradle-user-home /code/.gradle/ --no-daemon build -b /code/build.gradle -x jooqCodegenMain -Dquarkus.package.type=native

## Stage 2: Create the docker final image
FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3

ENV PS1="[\u@\h \W]\$ "

WORKDIR /work/

RUN chown 1001 /work \
 && chmod "g+rwX" /work \
 && chown 1001:root /work

COPY --chown=1001:root --from=builder /code/build/*-runner /work/application

EXPOSE 8080
USER 1001

ENTRYPOINT ["./application", "--enable-preview"]
CMD ["-Dquarkus.http.host=0.0.0.0"]
ThoSap commented 8 months ago

Fixed by temporarily removing quarkus.native.monitoring option jfr until Quarkus 3.6.5/3.7.0 OR the GraalVM for JDK 21.0.2 is realesed on January 23, 2024 https://github.com/Karm/mandrel-integration-tests/issues/236 https://github.com/quarkusio/quarkus/pull/37633 https://github.com/oracle/graal/issues/8020 https://github.com/oracle/graal/pull/8037

zakkak commented 8 months ago

@ThoSap FYI https://github.com/quarkusio/quarkus/pull/37633 was not marked for backporting to 3.6.5 so it's not part of it.

geoand commented 4 months ago

@zakkak I assume that we can close this as https://github.com/quarkusio/quarkus/pull/37633 was included in 3.6.6?

zakkak commented 4 months ago

No, unfortunately https://github.com/quarkusio/quarkus/pull/37633 doesn't solve the issue that:

Netty's `PlatformDependent` and `PlatformDependent0` classes are initialized differently than expected because reflective accesses fail.

https://github.com/quarkusio/quarkus/pull/37633 only makes sure that Quarkus works, the behavior however is still not the same with JVM mode.