I am attempting to use OCI Instance Principal authorization with Kafka Producer API to produce message to a OCI streams endpoint. I am referring to the documentation provided here - https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/Content/Streaming/Tasks/kafkacompatibility_topic-Configuration.htm
I run into the below issue that seems to indicate that the Jersey client instance is closed even as the attempt is being made to call the metadata service endpoint.
> 2022-08-13 07:33:17.393 INFO [,d6d94a84e30ed614,d6d94a84e30ed614] 9
> --- [tp1638249646-16] ePrincipalsAuthenticationDetailsProvider : Instance principals authentication can only be used on OCI compute
> instances. Please confirm this code is running on an OCI compute
> instance. See
> https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/callingservicesfrominstances.htm
> for more info. 2022-08-13 07:33:17.394 WARN
> [,d6d94a84e30ed614,d6d94a84e30ed614] 9 --- [tp1638249646-16]
> ientAuthenticationDetailsProviderBuilder : Attempt 1 - Rest call to
> get region from metadata service failed
>
> java.lang.IllegalStateException: Client instance has been closed. at
> org.glassfish.jersey.internal.guava.Preconditions.checkState(Preconditions.java:169)
> at
> org.glassfish.jersey.client.JerseyClient.checkNotClosed(JerseyClient.java:257)
> at
> org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:272)
> at
> org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:56)
> at
> com.oracle.bmc.auth.AbstractFederationClientAuthenticationDetailsProviderBuilder.simpleRetry(AbstractFederationClientAuthenticationDetailsProviderBuilder.java:502)
> at
> com.oracle.bmc.auth.AbstractFederationClientAuthenticationDetailsProviderBuilder.simpleRetry(AbstractFederationClientAuthenticationDetailsProviderBuilder.java:490)
> at
> com.oracle.bmc.auth.AbstractFederationClientAuthenticationDetailsProviderBuilder.executeInstanceFallback(AbstractFederationClientAuthenticationDetailsProviderBuilder.java:342)
> at
> com.oracle.bmc.auth.AbstractFederationClientAuthenticationDetailsProviderBuilder.autoDetectEndpointUsingMetadataUrl(AbstractFederationClientAuthenticationDetailsProviderBuilder.java:249)
> at
> com.oracle.bmc.auth.AbstractFederationClientAuthenticationDetailsProviderBuilder.autoDetectUsingMetadataUrl(AbstractFederationClientAuthenticationDetailsProviderBuilder.java:237)
> at
> com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider$InstancePrincipalsAuthenticationDetailsProviderBuilder.build(InstancePrincipalsAuthenticationDetailsProvider.java:99)
> at
> com.oracle.bmc.auth.sasl.InstancePrincipalsLoginModule.loadAuthenticationProvider(InstancePrincipalsLoginModule.java:31)
> at
> com.oracle.bmc.auth.sasl.OciLoginModule.initialize(OciLoginModule.java:36)
> at
> com.oracle.bmc.auth.sasl.InstancePrincipalsLoginModule.initialize(InstancePrincipalsLoginModule.java:17)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> javax.security.auth.login.LoginContext.invoke(LoginContext.java:736)
> at
> javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
> at java.security.AccessController.doPrivileged(Native Method) at
> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
> at
> org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:60)
> at
> org.apache.kafka.common.security.authenticator.LoginManager.(LoginManager.java:62)
> at
> org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:105)
> at
> org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:170)
> at
> org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:192)
> at
> org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:81)
> at
> org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:104)
> at
> org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:447)
> at
> org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:428)
> at
> org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:290)
> at
> org.springframework.kafka.core.DefaultKafkaProducerFactory.createRawProducer(DefaultKafkaProducerFactory.java:863)
> at
> org.springframework.kafka.core.DefaultKafkaProducerFactory.createKafkaProducer(DefaultKafkaProducerFactory.java:704)
> at
> org.springframework.kafka.core.DefaultKafkaProducerFactory.doCreateProducer(DefaultKafkaProducerFactory.java:664)
> at
> org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:639)
> at
> org.springframework.kafka.core.DefaultKafkaProducerFactory.createProducer(DefaultKafkaProducerFactory.java:633)
> at
> org.springframework.kafka.core.KafkaTemplate.getTheProducer(KafkaTemplate.java:752)
> at
> org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:638)
> at
> org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:429)
> at
> com.oracle.cxmarketing.messaging.kafka.producer.KafkaMessageProducer.send(KafkaMessageProducer.java:84)
> at
> com.oracle.cxmarketing.messaging.kafka.producer.KafkaMessageProducer.send(KafkaMessageProducer.java:78)
> at
> com.oracle.centralpod.poc.streams.messaging.producer.AccountsProducer.produceMessage(AccountsProducer.java:19)
> at
> com.oracle.centralpod.poc.streams.service.impl.StreamsPocServiceImpl.sendMessage(StreamsPocServiceImpl.java:22)
> at
> com.oracle.centralpod.poc.streams.web.controller.v1.StreamsPocController.sendMessage(StreamsPocController.java:33)
The container that executes this code is running within an OCI compute instance. Can I get help to understand the cause of this issue?