[Functions] Failed to resolve 'pulsar-broker.mypulsar.svc.cluster.local'
MMirelli opened this issue · comments
Massimiliano Mirelli commented
When deploying pulsar with TLS enabled and running a source function the following error is logged in the spawned function:
java.util.concurrent.CompletionException: org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.CompletionException: java.net.UnknownHostException: Failed to resolve 'pulsar-broker.mypulsar.svc.cluster.local' after 2 queries
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346) ~[?:?]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:704) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.apache.pulsar.client.impl.ConnectionPool.lambda$createConnection$10(ConnectionPool.java:226) ~[java-instance.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[java-instance.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) ~[java-instance.jar:?]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:391) ~[java-instance.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[java-instance.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[java-instance.jar:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[java-instance.jar:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: org.apache.pulsar.client.api.PulsarClientException: java.util.concurrent.CompletionException: java.net.UnknownHostException: Failed to resolve 'pulsar-broker.mypulsar.svc.cluster.local' after 2 queries
... 8 more
Repro:
- Deploy pulsar with tls and functions enabled (values below)
- create a partitioned topic and subscription
- generate a source function:
bin/pulsar-admin sources create
-t data-generator --name data-generator-source
--source-config '{"sleepBetweenMessages":"10"}'
--destination-topic-name persistent://public/default/test
Values:
enableAntiAffinity: no
enableTls: yes
tls:
function:
enableTlsWithBroker: true
enableHostnameVerification: true
cert-manager:
enabled: true
createCertificates:
selfSigned:
enabled: true
enableTokenAuth: yes
autoRecovery:
enableProvisionContainer: yes
restartOnConfigMapChange:
enabled: yes
image:
zookeeper:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
bookie:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
bookkeeper:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
autorecovery:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
broker:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
proxy:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
functions:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
function:
repository: datastaxlunastreaming-all
tag: 2.7.2_1.1.32
extra:
broker: false
brokerSts: true
function: yes
burnell: yes
burnellLogCollector: yes
pulsarHeartbeat: yes
pulsarAdminConsole: yes
functionsAsPods: yes
default_storage:
existingStorageClassName: server-storage
volumes:
data: #ASF Helm Chart
storageClassName: existent-storage-class
zookeeper:
replicaCount: 3
bookkeeper:
replicaCount: 3
broker:
component: broker
replicaCount: 2
ledger:
defaultEnsembleSize: 1
defaultAckQuorum: 1
defaultWriteQuorum: 1
function:
replicaCount: 1
functionReplicaCount: 1
runtime: "kubernetes"
proxy:
disableZookeeperDiscovery: true
useStsBrokersForDiscovery: true
replicaCount: 2
autoPortAssign:
enablePlainTextWithTLS: yes
service:
type: ClusterIP
autoPortAssign:
enabled: yes
grafanaDashboards:
enabled: yes
pulsarAdminConsole:
replicaCount: 0
service:
type: ClusterIP
grafana: #ASF Helm Chart
service:
type: ClusterIP
pulsar_manager:
service: #ASF Helm Chart
type: ClusterIP
kube-prometheus-stack: # Luna Streaming Helm Chart
enabled: no
prometheusOperator:
enabled: no
grafana:
enabled: no
service:
type: ClusterIP
pulsarSQL:
service:
type: ClusterIP
Massimiliano Mirelli commented
I have a fix for this issue.