Describe the bug
(Describe the problem clearly and concisely.)
Using the "informer" of the Fabric8 Kubernetes Client doesn't work in native image mode. It looks like a deserialziation issue.
Expected behavior
It should work, the same way it does in JVM mode.
Actual behavior
The list operation fails:
Exception on console
~~~
2020-06-26 09:25:22,712 WARN [io.fab.kub.cli.inf.cac.Controller] (informer-controller-Foo) Reflector list-watching job exiting because the thread-pool is shutting down: java.util.concurrent.RejectedExecutionException: Error while starting ReflectorRunnable watch
at io.fabric8.kubernetes.client.informers.cache.Reflector.listAndWatch(Reflector.java:85)
at io.fabric8.kubernetes.client.informers.cache.Controller.run(Controller.java:112)
at java.lang.Thread.run(Thread.java:834)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:497)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
Caused by: java.util.concurrent.RejectedExecutionException: Error while doing ReflectorRunnable list
at io.fabric8.kubernetes.client.informers.cache.Reflector.getList(Reflector.java:73)
at io.fabric8.kubernetes.client.informers.cache.Reflector.reListAndSync(Reflector.java:94)
at io.fabric8.kubernetes.client.informers.cache.Reflector.listAndWatch(Reflector.java:80)
... 4 more
Caused by: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:248)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:199)
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:474)
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:430)
at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:412)
at io.fabric8.kubernetes.client.dsl.base.BaseOperation.listRequestHelper(BaseOperation.java:151)
at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:621)
at io.fabric8.kubernetes.client.informers.SharedInformerFactory$1.list(SharedInformerFactory.java:134)
at io.fabric8.kubernetes.client.informers.SharedInformerFactory$1.list(SharedInformerFactory.java:127)
at io.fabric8.kubernetes.client.informers.cache.Reflector.getList(Reflector.java:67)
... 6 more
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "apiVersion" (class org.acme.getting.started.crd.FooList), not marked as ignorable (2 known properties: "items", "metadata"])
at [Source: (BufferedInputStream); line: 1, column: 16] (through reference chain: org.acme.getting.started.crd.FooList["apiVersion"])
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:843)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1206)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1610)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1588)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4218)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3259)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:246)
... 15 more
~~~
Describe the bug (Describe the problem clearly and concisely.)
Using the "informer" of the Fabric8 Kubernetes Client doesn't work in native image mode. It looks like a deserialziation issue.
Expected behavior
It should work, the same way it does in JVM mode.
Actual behavior
The list operation fails:
Exception on console
~~~ 2020-06-26 09:25:22,712 WARN [io.fab.kub.cli.inf.cac.Controller] (informer-controller-Foo) Reflector list-watching job exiting because the thread-pool is shutting down: java.util.concurrent.RejectedExecutionException: Error while starting ReflectorRunnable watch at io.fabric8.kubernetes.client.informers.cache.Reflector.listAndWatch(Reflector.java:85) at io.fabric8.kubernetes.client.informers.cache.Controller.run(Controller.java:112) at java.lang.Thread.run(Thread.java:834) at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:497) at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193) Caused by: java.util.concurrent.RejectedExecutionException: Error while doing ReflectorRunnable list at io.fabric8.kubernetes.client.informers.cache.Reflector.getList(Reflector.java:73) at io.fabric8.kubernetes.client.informers.cache.Reflector.reListAndSync(Reflector.java:94) at io.fabric8.kubernetes.client.informers.cache.Reflector.listAndWatch(Reflector.java:80) ... 4 more Caused by: io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred. at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:248) at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:199) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:474) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:430) at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:412) at io.fabric8.kubernetes.client.dsl.base.BaseOperation.listRequestHelper(BaseOperation.java:151) at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:621) at io.fabric8.kubernetes.client.informers.SharedInformerFactory$1.list(SharedInformerFactory.java:134) at io.fabric8.kubernetes.client.informers.SharedInformerFactory$1.list(SharedInformerFactory.java:127) at io.fabric8.kubernetes.client.informers.cache.Reflector.getList(Reflector.java:67) ... 6 more Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "apiVersion" (class org.acme.getting.started.crd.FooList), not marked as ignorable (2 known properties: "items", "metadata"]) at [Source: (BufferedInputStream); line: 1, column: 16] (through reference chain: org.acme.getting.started.crd.FooList["apiVersion"]) at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:843) at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1206) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1610) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1588) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4218) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3259) at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:246) ... 15 more ~~~To Reproduce Steps to reproduce the behavior:
Configuration
Screenshots (If applicable, add screenshots to help explain your problem.)
Environment (please complete the following information):
uname -a
orver
:java -version
:mvnw --version
orgradlew --version
): Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Additional context (Add any other context about the problem here.)
https://github.com/quarkusio/quarkus/issues/10295
$upstream:10295$