dragonls edited a comment on issue #10300:
URL: https://github.com/apache/pulsar/issues/10300#issuecomment-824760511


   > @dragonls you can add such config in broker.conf
   > 
   > ```
   > proxyRoles=my-proxy-role
   > superUserRoles=my-proxy-role
   > ```
   
   @linlinnn I am using pulsar on k8s, and tried the config as you said. Still 
getting the same error.
    We can look into the exception, 
https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java#L408
 , it is not about pulsar proxy component but the authorization control.
   
   The detailed error log while using `./bin/pulsar-perf` to consume a 
patitioned topic, which is updated from 4 partitions to 5:
   ```
   19:45:08.291 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-0][roleA-test] Subscribed to topic on 
pulsar-broker-13.pulsar-broker.pulsar.svc.cluster.local/9.165.129.10:6650 -- 
consumer: 0
   19:45:08.291 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-1][roleA-test] Subscribed to topic on 
pulsar-broker-13.pulsar-broker.pulsar.svc.cluster.local/9.165.129.10:6650 -- 
consumer: 1
   19:45:08.291 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-2][roleA-test] Subscribed to topic on 
pulsar-broker-13.pulsar-broker.pulsar.svc.cluster.local/9.165.129.10:6650 -- 
consumer: 2
   19:45:08.293 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-3][roleA-test] Subscribed to topic on 
pulsar-broker-13.pulsar-broker.pulsar.svc.cluster.local/9.165.129.10:6650 -- 
consumer: 3
   19:45:08.293 [pulsar-client-io-1-1] WARN  
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl - 
[persistent://test/auth/topic] Failed to subscribe for topic 
[persistent://test/auth/topic] in topics consumer 
org.apache.pulsar.client.api.PulsarClientException$AuthorizationException: 
Proxy Client is not authorized to Lookup
   19:45:08.294 [pulsar-external-listener-3-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-4] [roleA-test] Closed Consumer (not 
connected)
   19:45:08.298 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-3] [roleA-test] Closed consumer
   19:45:08.299 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-2] [roleA-test] Closed consumer
   19:45:08.299 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-1] [roleA-test] Closed consumer
   19:45:08.300 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - 
[persistent://test/auth/topic-partition-0] [roleA-test] Closed consumer
   19:45:08.300 [pulsar-client-io-1-1] WARN  
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl - 
[persistent://test/auth/topic] Failed to subscribe for topic 
[persistent://test/auth/topic] in topics consumer, subscribe error: 
org.apache.pulsar.client.api.PulsarClientException$AuthorizationException: 
Proxy Client is not authorized to Lookup
   19:45:08.300 [pulsar-client-io-1-1] WARN  
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl - Failed subscription for 
createPartitionedConsumer: persistent://test/auth/topic 5, 
e:java.util.concurrent.CompletionException: 
org.apache.pulsar.client.api.PulsarClientException$AuthorizationException: 
Proxy Client is not authorized to Lookup
   Exception in thread "main" java.util.concurrent.ExecutionException: 
org.apache.pulsar.client.api.PulsarClientException$AuthorizationException: 
Failed to subscribe persistent://test/auth/topic with 5 partitions
   Proxy Client is not authorized to Lookup
        at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
        at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
        at 
org.apache.pulsar.testclient.PerformanceConsumer.main(PerformanceConsumer.java:337)
   Caused by: 
org.apache.pulsar.client.api.PulsarClientException$AuthorizationException: 
Failed to subscribe persistent://test/auth/topic with 5 partitions
   Proxy Client is not authorized to Lookup
        at 
org.apache.pulsar.client.api.PulsarClientException.wrap(PulsarClientException.java:845)
        at 
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl.lambda$createPartitionedConsumer$35(MultiTopicsConsumerImpl.java:857)
        at 
java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:884)
        at 
java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:866)
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
        at 
java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
        at 
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl.lambda$null$42(MultiTopicsConsumerImpl.java:1015)
        at 
java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)
        at 
java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750)
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
        at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975)
        at 
org.apache.pulsar.client.impl.ConsumerImpl.cleanupAtClose(ConsumerImpl.java:1079)
        at 
org.apache.pulsar.client.impl.ConsumerImpl.lambda$closeAsync$15(ConsumerImpl.java:1064)
        at 
java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:836)
        at 
java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:811)
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
        at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975)
        at 
org.apache.pulsar.client.impl.ClientCnx.handleSuccess(ClientCnx.java:444)
        at 
org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:268)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
        at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run(Thread.java:748)
   ```
   
   The error log shows that not authorized to Lookup 
`persistent://test/auth/topic-partition-4`, which is the new partition.
   


-- 
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to