zhfeng commented on issue #5006:
URL: https://github.com/apache/camel-quarkus/issues/5006#issuecomment-1613170644
@jamesnetherton the work around seems only work in application file such as
`integration-tests/google-bigquery/src/main/resources/META-INF/native-image/native-image.properties`
@zakkak now we upgrade to quarkus `3.2.0.Final`, it is failing with
```
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running
Quarkus native-image plugin on native-image 17.0.7 2023-04-18
OpenJDK Runtime Environment Mandrel-23.0.0.0-Final (build 17.0.7+7)
OpenJDK 64-Bit Server VM Mandrel-23.0.0.0-Final (build 17.0.7+7, mixed mode)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] docker run
--env LANG=C --rm --user 1000:1000 -v
/home/zhfeng/work/zhfeng/camel-quarkus/integration-tests/google-bigquery/target/camel-quarkus-integration-test-google-bigquery-3.0.0-SNAPSHOT-native-image-source-jar:/project:z
--name build-native-KDmxj
quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-17
-J-Djava.util.logging.manager=org.jboss.logmanager.LogManager
-J-Dsun.nio.ch.maxUpdateArraySize=100
-J-Dlogging.initial-configurator.min-level=500
-J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory
-J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED
-J-Dio.netty.allocator.maxOrder=3 -J-Duser.language=zh -J-Duser.country=CN
-J-Dfile.encoding=UTF-8
--features=io.quarkus.runner.Feature,io.quarkus.runtime.graal.DisableLoggingFeature
-J--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED
-J--add-opens=java.base/java.text=ALL-UNNAMED -J--ad
d-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:BuildOutputJSONFile=camel-quarkus-integration-test-google-bigquery-3.0.0-SNAPSHOT-runner-build-output-stats.json
-H:+AllowFoldMethods -J-Djava.awt.headless=true --no-fallback
--link-at-build-time -H:+ReportExceptionStackTraces -H:-AddAllCharsets
--enable-url-protocols=http -H:-UseServiceLoaderFeature -H:+StackTrace
-J--add-exports=org.graalvm.sdk/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
camel-quarkus-integration-test-google-bigquery-3.0.0-SNAPSHOT-runner -jar
camel-quarkus-integration-test-google-bigquery-3.0.0-SNAPSHOT-runner.jar
========================================================================================================================
GraalVM Native Image: Generating
'camel-quarkus-integration-test-google-bigquery-3.0.0-SNAPSHOT-runner'
(executable)...
========================================================================================================================
[1/8] Initializing...
(7.3s @ 0.35GB)
Java version: 17.0.7+7, vendor version: Mandrel-23.0.0.0-Final
Graal compiler: optimization level: 2, target machine: x86-64-v3
C compiler: gcc (redhat, x86_64, 8.5.0)
Garbage collector: Serial GC (max heap size: 80% of RAM)
8 user-specific feature(s)
- com.google.api.gax.grpc.nativeimage.GrpcNettyFeature
- com.google.api.gax.grpc.nativeimage.ProtobufMessageFeature
- com.google.api.gax.nativeimage.GoogleJsonClientFeature
- com.google.api.gax.nativeimage.OpenCensusFeature
- com.oracle.svm.thirdparty.gson.GsonFeature
- 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
- org.eclipse.angus.activation.nativeimage.AngusActivationFeature
Warning: RecomputeFieldValue.FieldOffset automatic substitution failed. The
automatic substitution registration was attempted because a call to
sun.misc.Unsafe.objectFieldOffset(Field) was detected in the static initializer
of com.google.protobuf.UnsafeUtil. Detailed failure reason(s): The argument of
sun.misc.Unsafe.objectFieldOffset(java.lang.reflect.Field) is not a constant
value or a field load that can be constant-folded., Could not determine the
field where the value produced by the call to
sun.misc.Unsafe.objectFieldOffset(Field) for the field offset computation is
stored. The call is not directly followed by a field store or by a sign extend
node followed directly by a field store.
[2/8] Performing analysis... []
(24.1s @ 6.07GB)
15,321 (79.61%) of 19,245 types reachable
21,672 (57.86%) of 37,454 fields reachable
74,150 (52.75%) of 140,577 methods reachable
5,378 types, 1,668 fields, and 11,565 methods registered for reflection
Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError:
Error encountered while parsing
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.directBuffer(PooledByteBufAllocatorL.java:210)
Parsing context:
at
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.directBuffer(PooledByteBufAllocatorL.java:136)
at
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)
at
io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:116)
at io.netty.handler.codec.base64.Base64$Decoder.decode(Base64.java:318)
at io.netty.handler.codec.base64.Base64.decode(Base64.java:302)
at io.netty.handler.codec.base64.Base64.decode(Base64.java:293)
at io.netty.handler.codec.base64.Base64.decode(Base64.java:281)
at io.netty.handler.ssl.PemReader.readPrivateKey(PemReader.java:150)
at
io.quarkus.netty.runtime.graal.Target_SslContext.toPrivateKey(NettySubstitutions.java:604)
at
io.netty.handler.ssl.SslContextBuilder.keyManager(SslContextBuilder.java:418)
at io.grpc.netty.ProtocolNegotiators.from(ProtocolNegotiators.java:114)
at
io.grpc.netty.NettyChannelProvider.newChannelBuilder(NettyChannelProvider.java:52)
at root method.(Unknown Source)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:149)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:178)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureFlowsGraphCreated(MethodTypeFlow.java:152)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.getOrCreateMethodFlowsGraphInfo(MethodTypeFlow.java:110)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultVirtualInvokeTypeFlow.java:113)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:583)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:474)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:187)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:171)
at
java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at
java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at
java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at
java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError:
com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered
unresolved method during parsing:
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.threadCache(). This
error is reported at image build time because class
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator is registered for
linking at image build time by command line
at parsing
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.newDirectBufferL(PooledByteBufAllocatorL.java:164)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2536)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.throwParserError(SharedGraphBuilderPhase.java:169)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3414)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.iterateBytecodesForBlock(SharedGraphBuilderPhase.java:712)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3366)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3208)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1134)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.build(SharedGraphBuilderPhase.java:152)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1026)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:97)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:114)
at
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
at
jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:434)
at
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
at
jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:146)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.parseGraph(AnalysisMethod.java:819)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsedHelper(AnalysisMethod.java:784)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:767)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.lookupEncodedGraph(InlineBeforeAnalysisGraphDecoder.java:120)
at
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.doInline(PEGraphDecoder.java:1190)
at
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.tryInline(PEGraphDecoder.java:1173)
at
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.trySimplifyInvoke(PEGraphDecoder.java:1028)
at
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.handleInvoke(PEGraphDecoder.java:982)
at
jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.processNextNode(GraphDecoder.java:871)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.processNextNode(InlineBeforeAnalysisGraphDecoder.java:186)
at
jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.decode(GraphDecoder.java:600)
at
jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.decode(PEGraphDecoder.java:854)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysis.decodeGraph(InlineBeforeAnalysis.java:77)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:193)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:583)
at
org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:165)
... 13 more
Caused by: com.oracle.graal.pointsto.constraints.UnresolvedElementException:
Discovered unresolved method during parsing:
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator.threadCache(). This
error is reported at image build time because class
io.netty.buffer.PooledByteBufAllocatorL$InnerAllocator is registered for
linking at image build time by command line
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.reportUnresolvedElement(SharedGraphBuilderPhase.java:521)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.reportUnresolvedElement(SharedGraphBuilderPhase.java:515)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedMethod(SharedGraphBuilderPhase.java:442)
at
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedInvoke(SharedGraphBuilderPhase.java:338)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeVirtual(BytecodeParser.java:1725)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5329)
at
jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3406)
... 42 more
```
I think it could be related to Vertx `4.4.4` which dpeneds on `netty
4.1.94.Final` and I revert the commit [Update to Vert.x
4.4.4](https://github.com/quarkusio/quarkus/commit/ee1bf877d1ad7d953d38819cb87d756221bd9a5c).
Then the work around is back to work. Any thought?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]