zymap opened a new pull request #5913: Fixes #5814: add SentConnectFrame state 
check when running `handleError`
URL: https://github.com/apache/pulsar/pull/5913
 
 
   ---
   
   Fixes #5841
   
   *Motivation*
   
   when enabling authentication and authorization, if a user using
   the wrong key to send to the server, the server will return an
   `Error` message. There is no `Connected` message return to the
   client so the client is staying in `SentConnectFrame` and it can
   receive the server `Error` message.
   We need to check the `SentConnectFrame` state when receiving `Error` message.
   
   The client will throw the error:
   
   ```
   java.lang.IllegalArgumentException: null
        at 
com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) 
~[guava-21.0.jar:?]
        at 
org.apache.pulsar.client.impl.ClientCnx.handleError(ClientCnx.java:588) 
~[pulsar-client-original-2.4.1.jar:2.4.1]
        at 
org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:154)
 ~[pulsar-common-2.4.1.jar:2.4.1]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:433) 
[netty-all-4.1.32.Final.jar:4.1.32.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:330) 
[netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
   ```
   
   *Modifications*
   
   - Add `SentConnectFrame` check
   

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


With regards,
Apache Git Services

Reply via email to