Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stork native is throwing a BuildException exception when the app is built #27886

Closed
pjgg opened this issue Sep 13, 2022 · 14 comments
Closed

Stork native is throwing a BuildException exception when the app is built #27886

pjgg opened this issue Sep 13, 2022 · 14 comments
Labels
Milestone

Comments

@pjgg
Copy link
Contributor

pjgg commented Sep 13, 2022

Describe the bug

Quarkus Version: Upstream
Extensions: stork-service-discovery-consul and stork-service-discovery-kubernetes
Stork version: 1.1.2 (same as Quarkus BOM)

Given a Quarkus app that is using Stock as a service discovery / load balancer, when I build a native application with quay.io/quarkus/ubi-quarkus-native-image:22.2-java17 docker image I am getting the following build error:

[2/7] Performing analysis...  [*]                                                                       (40.0s @ 0.93GB)
  10,953 (88.83%) of 12,330 classes reachable
  17,881 (60.63%) of 29,493 fields reachable
  60,200 (61.55%) of 97,804 methods reachable
   1,255 classes, 4,306 fields, and 15,136 methods registered for reflection

2 fatal errors detected:
Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery$$Lambda$18404488dbb958346aa42961da2ebb823fbd8c35.handle(java.lang.Object) 
Parsing context:
   at io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery$$Lambda$1604/0x00000007c2021a48.handle(Unknown Source)
   at io.vertx.core.impl.ContextBase.lambda$null$0(ContextBase.java:137)
   at io.vertx.core.impl.ContextBase$$Lambda$1204/0x00000007c1f49450.handle(Unknown Source)
   at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:264)
   at io.vertx.core.impl.ContextBase.lambda$executeBlocking$1(ContextBase.java:135)
   at io.vertx.core.impl.ContextBase$$Lambda$1203/0x00000007c1f49228.run(Unknown Source)
   at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
   at io.vertx.core.impl.TaskQueue$$Lambda$1106/0x00000007c1ea5f20.run(Unknown Source)
   at java.lang.Shutdown.runHooks(Shutdown.java:130)
   at java.lang.Shutdown.shutdown(Shutdown.java:185)
   at com.oracle.svm.core.jdk.RuntimeSupport.shutdown(RuntimeSupport.java:158)

        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:152)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:104)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureFlowsGraphCreated(MethodTypeFlow.java:83)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.getOrCreateMethodFlowsGraph(MethodTypeFlow.java:65)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultVirtualInvokeTypeFlow.java:109)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:558)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:635)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:193)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:177)
        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 type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
        at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2506)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.throwParserError(SharedGraphBuilderPhase.java:105)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3367)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3319)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3164)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1138)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1030)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:79)
        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:261)
        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:135)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:685)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.lookupEncodedGraph(InlineBeforeAnalysis.java:180)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.doInline(PEGraphDecoder.java:1162)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.tryInline(PEGraphDecoder.java:1145)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.trySimplifyInvoke(PEGraphDecoder.java:1003)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.handleInvoke(PEGraphDecoder.java:957)
        at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.processNextNode(GraphDecoder.java:817)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.processNextNode(InlineBeforeAnalysis.java:240)
        at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.decode(GraphDecoder.java:548)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.decode(PEGraphDecoder.java:833)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysis.decodeGraph(InlineBeforeAnalysis.java:98)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:176)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:343)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:93)
        ... 13 more
Caused by: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery 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:298)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedType(SharedGraphBuilderPhase.java:253)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedCheckCast(SharedGraphBuilderPhase.java:219)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genCheckCast(BytecodeParser.java:4287)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genCheckCast(BytecodeParser.java:4280)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5232)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3359)
        ... 38 more
Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery$$Lambda$18404488dbb958346aa42961da2ebb823fbd8c35.handle(java.lang.Object) 
Parsing context:
   at io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery$$Lambda$1604/0x00000007c2021a48.handle(Unknown Source)
   at io.vertx.ext.consul.impl.ConsulClientImpl.reqOnContext(ConsulClientImpl.java:1339)
   at io.vertx.ext.consul.impl.ConsulClientImpl.request(ConsulClientImpl.java:1293)
   at io.vertx.ext.consul.impl.ConsulClientImpl.requestVoid(ConsulClientImpl.java:1286)

        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:152)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:104)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureFlowsGraphCreated(MethodTypeFlow.java:83)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.getOrCreateMethodFlowsGraph(MethodTypeFlow.java:65)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.DefaultVirtualInvokeTypeFlow.onObservedUpdate(DefaultVirtualInvokeTypeFlow.java:109)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:558)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:635)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:193)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:177)
        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: com.oracle.graal.pointsto.util.AnalysisError: parsing had failed in another thread
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisError.shouldNotReachHere(AnalysisError.java:176)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:720)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.lookupEncodedGraph(InlineBeforeAnalysis.java:180)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.doInline(PEGraphDecoder.java:1162)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.tryInline(PEGraphDecoder.java:1145)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.trySimplifyInvoke(PEGraphDecoder.java:1003)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.handleInvoke(PEGraphDecoder.java:957)
        at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.processNextNode(GraphDecoder.java:817)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysisGraphDecoder.processNextNode(InlineBeforeAnalysis.java:240)
        at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.GraphDecoder.decode(GraphDecoder.java:548)
        at jdk.internal.vm.compiler/org.graalvm.compiler.replacements.PEGraphDecoder.decode(PEGraphDecoder.java:833)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.phases.InlineBeforeAnalysis.decodeGraph(InlineBeforeAnalysis.java:98)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:176)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:343)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.flow.MethodTypeFlow.createFlowsGraph(MethodTypeFlow.java:93)
        ... 13 more
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
        at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2506)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.throwParserError(SharedGraphBuilderPhase.java:105)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3367)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3319)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3164)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1138)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1030)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:79)
        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:261)
        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:135)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:685)
        ... 26 more
Caused by: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery 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:298)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedType(SharedGraphBuilderPhase.java:253)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedCheckCast(SharedGraphBuilderPhase.java:219)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genCheckCast(BytecodeParser.java:4287)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genCheckCast(BytecodeParser.java:4280)
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5232)
------------------------------------------------------------------------------------------------------------------------
        at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3359)
        ... 38 more
                        2.9s (5.6% of total time) in 27 GCs | Peak RSS: 2.90GB | CPU load: 5.74
========================================================================================================================
Failed generating 'stork-1.0.0-SNAPSHOT-runner' after 51.1s.
Error: Image build request failed with exit status 1

Expected behavior

Native image should not throw any error on build time

Actual behavior

Unexpected exception when a native image is built.

How to Reproduce?

git clone git@github.com:quarkus-qe/quarkus-test-suite.git

cd quarkus-test-suite

mvn clean verify -Dall-modules -pl service-discovery/stork -Dnative -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:22.2-java17

Just in case you want to have a look, the project is located under this module: service-discovery/stork. Please be sure that the following configuration in order to disable native compilation is not present in this module pom.xml

<profile>
            <!-- Disable native build on this module -->
            <id>native</id>
            <activation>
                <property>
                    <name>native</name>
                </property>
            </activation>
            <properties>
                <!-- To not build the module on Native -->
                <quarkus.package.type>fast-jar</quarkus.package.type>
            </properties>
        </profile>

Output of uname -a or ver

No response

Output of java -version

openjdk version "11.0.16" 2022-07-19 OpenJDK Runtime Environment Temurin-11.0.16+8 (build 11.0.16+8) OpenJDK 64-Bit Server VM Temurin-11.0.16+8 (build 11.0.16+8, mixed mode)

GraalVM version (if different from Java)

quay.io/quarkus/ubi-quarkus-native-image:22.2-java17

Quarkus version or git rev

No response

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

No response

Additional information

No response

@pjgg pjgg added the kind/bug Something isn't working label Sep 13, 2022
@quarkus-bot
Copy link

quarkus-bot bot commented Sep 13, 2022

@geoand
Copy link
Contributor

geoand commented Sep 13, 2022

There is a pretty prominent warning message:

[WARNING] [io.quarkus.stork.deployment.SmallRyeStorkProcessor] The application is using the Stork Kubernetes Service Discovery provider but does not depend on the `quarkus-kubernetes-client` extension. It is highly recommended to use the `io.quarkus:quarkus-kubernetes-client` extension with the Kubernetes service discovery

So first of all you'll need to add:

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-kubernetes-client</artifactId>
        </dependency>

to the application's dependencies.

Now, even with that done, I get the following:

Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
        at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)

This seems to me the be caused by some mismatch between Kubernetes Client versions and I'll leave it to @Sgitario @aureamunoz and @manusa to figure out what's going on.

@rsvoboda
Copy link
Member

about kube client + Stork Kubernetes Service Discovery: highly recommended or mandatory? @aureamunoz and @manusa

btw there is revert of kube client going on - #27875
but still, we will move to 6.1 at some time

@cescoffier
Copy link
Member

yes, it's a client version mismatch. With the storm happening around that subject at the moment, let's wait until we know which version will be used and adapt stork kubernetes discovery (@aureamunoz).

@aureamunoz
Copy link
Member

Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
        at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)

This error comes from Stork using k8s client 5.x version. The PR is in standby.

quarkus-kubernetes-client is needed when compiling natively because is this extension who does all the job

@michalvavrik
Copy link
Contributor

michalvavrik commented Sep 13, 2022

@aureamunoz alright, in that case, shouldn't it be explicitly said that if you don't have quarkus-kuberentes-client extension, it won't work in native? I didn't find it in the docs and recommendation does not state what will happen. I thought all the extensions are native ready (unless stated otherwise).

@cescoffier
Copy link
Member

@michalvavrik this one is an exception as it is only required when using the kubernetes discovery (which is not an extension, but a plain jar).

@rsvoboda
Copy link
Member

Shouldn't be the dependency on kube client defined directly for Stork Kubernetes Service Discovery? Native mode experience should be on par with jvm mode experience (ideally).

@aureamunoz
Copy link
Member

aureamunoz commented Sep 13, 2022

Shouldn't be the dependency on kube client defined directly for Stork Kubernetes Service Discovery? Native mode
experience should be on par with jvm mode experience (ideally).

This way Stork should depend on Quarkus and and this is not desirable

@cescoffier
Copy link
Member

Yes, it would create a dependency cycle. We know this is now ideal.

@geoand
Copy link
Contributor

geoand commented Sep 15, 2022

Is this still a problem now that Stork 1.2 has been merged into main?

@aureamunoz
Copy link
Member

I've just checked and it works for me locally. WDYT @pjgg ?

@pjgg
Copy link
Contributor Author

pjgg commented Sep 15, 2022

Yes, looks good to me. I could not reproduce against Stork 1.2.0

@geoand
Copy link
Contributor

geoand commented Sep 15, 2022

Thanks folks, I'll close this

@geoand geoand closed this as completed Sep 15, 2022
@geoand geoand added this to the 2.14 - main milestone Sep 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants