Pratik Thacker created ZOOKEEPER-3988:
-----------------------------------------
Summary:
org.apache.zookeeper.server.NettyServerCnxn.receiveMessage throws
NullPointerException
Key: ZOOKEEPER-3988
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3988
Project: ZooKeeper
Issue Type: Bug
Components: server
Affects Versions: 3.6.1
Environment: K8S
Reporter: Pratik Thacker
While upgrading K8S cluster, container running zookeeper will rollover one by
one.
During this rollover, Null Pointer Exception was observed as below.
{code:java}
INFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):Follower@292] -
shutdown FollowerINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):Follower@292] -
shutdown FollowerINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):LearnerZooKeeperServer@160]
- Shutting downINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):ZooKeeperServer@784]
- shutting downINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):RequestThrottler@244]
- Shutting downINFO [RequestThrottler:RequestThrottler@205] - Draining
request throttler queueINFO [RequestThrottler:RequestThrottler@181] -
RequestThrottler shutdown. Dropped 0 requestsINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):FollowerRequestProcessor@148]
- Shutting downINFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):CommitProcessor@617]
- Shutting downINFO [FollowerRequestProcessor:1:FollowerRequestProcessor@112]
- FollowerRequestProcessor exited loop!INFO
[CommitProcessor:1:CommitProcessor@406] - CommitProcessor exited loop!INFO
[QuorumPeer[myid=1](plain=0.0.0.0:2181)(secure=0.0.0.0:2281):FinalRequestProcessor@662]
- shutdown of request processor completeERROR
[nioEventLoopGroup-4-22:NettyServerCnxnFactory$CnxnChannelHandler@329] -
Unexpected exception in receivejava.lang.NullPointerException: null at
org.apache.zookeeper.server.NettyServerCnxn.receiveMessage(NettyServerCnxn.java:515)
~[zookeeper-3.6.1.jar:3.6.1] at
org.apache.zookeeper.server.NettyServerCnxn.processMessage(NettyServerCnxn.java:365)
~[zookeeper-3.6.1.jar:3.6.1] at
org.apache.zookeeper.server.NettyServerCnxnFactory$CnxnChannelHandler.channelRead(NettyServerCnxnFactory.java:326)
[zookeeper-3.6.1.jar:3.6.1] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
java.lang.Thread.run(Thread.java:834) [?:?]WARN
[nioEventLoopGroup-4-22:NettyServerCnxnFactory$CnxnChannelHandler@273] -
Exception caughtjava.lang.NullPointerException: null at
org.apache.zookeeper.server.NettyServerCnxn.receiveMessage(NettyServerCnxn.java:515)
~[zookeeper-3.6.1.jar:3.6.1] at
org.apache.zookeeper.server.NettyServerCnxn.processMessage(NettyServerCnxn.java:365)
~[zookeeper-3.6.1.jar:3.6.1] at
org.apache.zookeeper.server.NettyServerCnxnFactory$CnxnChannelHandler.channelRead(NettyServerCnxnFactory.java:326)
~[zookeeper-3.6.1.jar:3.6.1] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
[netty-transport-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[netty-common-4.1.48.Final.jar:4.1.48.Final] at
java.lang.Thread.run(Thread.java:834) [?:?] {code}
Expectation: This scenario should be handled and application should not throw
such Null Pointer exception.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)