lhotari opened a new issue, #13923:
URL: https://github.com/apache/pulsar/issues/13923

   **Describe the bug**
   
   It is common that UnsupportedOperationExceptions appear on the Proxy logs. 
This particular issue was reproduced very often when Geo-replication was 
configured between 2 clusters.
   ```
   16:57:50.305 [pulsar-proxy-io-2-3] INFO  
org.apache.pulsar.proxy.server.ProxyConnection - [/10.34.1.169:47600] New 
connection opened
   16:57:50.329 [pulsar-proxy-io-2-3] INFO  
org.apache.pulsar.proxy.server.ProxyConnection - [/10.34.1.169:47600] complete 
connection, init proxy handler. authenticated with token role superuser, 
hasProxyToBrokerUrl: false
   16:57:50.331 [pulsar-proxy-io-2-3] WARN  
io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, 
and it reached at the tail of the pipeline. It usually means the last handler 
in the pipeline did not handle the exception.
   java.lang.UnsupportedOperationException: null
           at 
org.apache.pulsar.common.protocol.PulsarDecoder.handleProducer(PulsarDecoder.java:479)
           at 
org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:193)
           at 
org.apache.pulsar.proxy.server.ProxyConnection.channelRead(ProxyConnection.java:193)
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fina
   l]
           at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
 [io.netty-netty-codec-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
 [io.netty-netty-codec-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fina
   l]
           at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1371) 
[io.netty-netty-handler-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1245) 
[io.netty-netty-handler-4.1.72.Final.jar:4.1.72.Final]
           at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285) 
[io.netty-netty-handler-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507)
 [io.netty-netty-codec-4.1.72.Final.jar:4.1.72.Final
   ]
           at 
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446)
 [io.netty-netty-codec-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
 [io.netty-netty-codec-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fina
   l]
           at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Fi
   nal]
           at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 [io.netty-netty-transport-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
 [io.netty-netty-transport-classes-epoll
   -4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) 
[io.netty-netty-transport-classes-epoll-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) 
[io.netty-netty-transport-classes-epoll-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
 [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
           at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
           at java.lang.Thread.run(Thread.java:829) [?:?]
   ```
   
   **To Reproduce**
   Steps to reproduce the behavior:
   1. Setup 2 Pulsar clusters and enable geo-replication in a namespace that is 
shared across the clusters.
   2. Create a topic with 200 partitions in the replicated namespace.
   3. Restart all brokers in one cluster to get the geo-replication connections 
to re-initialize untill you have reproduced the issue in the Pulsar Proxy logs.
   
   **Expected behavior**
   The race conditions should be handled in Pulsar Proxy


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

To unsubscribe, e-mail: [email protected]

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

Reply via email to