RuiLi8080 opened a new pull request #3296:
URL: https://github.com/apache/storm/pull/3296
## What is the purpose of the change
In some (rare) cases, we observed netty-server might receive messages other
than a List<TaskMessage> from a wrong source, and it will throw
ClassCastException and terminate the worker process.
## How was the change tested
Set netty server side to not using Sasl related ServerHandler while making
client send sasl message, we observe the following message without worker
getting killed
```
2020-06-26 15:10:41.086 o.a.s.m.n.Server
Netty-server-localhost-6701-worker-1 [ERROR] Worker netty server receive
message other than the expected class List<TaskMessage>
java.lang.ClassCastException:
org.apache.storm.messaging.netty.ControlMessage cannot be cast to java.util.List
at org.apache.storm.messaging.netty.Server.received(Server.java:266)
[storm-client-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.messaging.netty.StormServerHandler.channelRead(StormServerHandler.java:51)
[storm-client-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at
org.apache.storm.shade.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
[storm-shaded-deps-2.3.0.y.jar:2.3.0.y]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
```
----------------------------------------------------------------
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]