[
https://issues.apache.org/jira/browse/TUBEMQ-317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17177558#comment-17177558
]
Guocheng Zhang commented on TUBEMQ-317:
---------------------------------------
!image-2020-08-14-11-44-33-247.png! !image-2020-08-14-11-44-41-974.png!
As shown above, in the getRecordSeg function, after the code logic obtains the
segment through the findSegment function, it should first judge and confirm
that the object is not null before using it.
Thanks, carylu!
> The Store Manager throws java.lang.NullPointerException
> -------------------------------------------------------
>
> Key: TUBEMQ-317
> URL: https://issues.apache.org/jira/browse/TUBEMQ-317
> Project: Apache TubeMQ
> Issue Type: Bug
> Components: Broker
> Reporter: carylu
> Priority: Major
>
> Here are the exceptions:
> [WARN] 2020-08-14 00:00:00,034 [CmptBrokerServiceServer] [Store Manager] get
> message failure, requestOffset=0,group=mygroup,topic=topic1,partitionId=0
> java.lang.NullPointerException
> at
> com.tencent.tubemq.server.broker.msgstore.disk.FileSegmentList.getRecordSeg(FileSegmentList.java:69)
> at
> com.tencent.tubemq.server.broker.msgstore.disk.MsgFileStore.indexSlice(MsgFileStore.java:597)
> at
> com.tencent.tubemq.server.broker.msgstore.MessageStore.getMessages(MessageStore.java:273)
> at
> com.tencent.tubemq.server.cmpt.CmptBrokerServiceServer.getMessages(CmptBrokerServiceServer.java:473)
> at
> com.tencent.tubemq.server.cmpt.CmptBrokerServiceServer.getMessagesC2B(CmptBrokerServiceServer.java:370)
> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> com.tencent.tubemq.tuberpccmpt.protocol.CmptRpcProtocol.newHandleRequest(CmptRpcProtocol.java:162)
> at
> com.tencent.tubemq.tuberpccmpt.protocol.CmptRpcProtocol.handleRequest(CmptRpcProtocol.java:118)
> at
> com.tencent.tubemq.tuberpccmpt.netty.CmptNettyRpcServer$NettyServerHandler.newMessageReceived(CmptNettyRpcServer.java:379)
> at
> com.tencent.tubemq.tuberpccmpt.netty.CmptNettyRpcServer$NettyServerHandler.messageReceived(CmptNettyRpcServer.java:297)
> at
> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
> at
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
> at
> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
> at
> org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
> at
> org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
> at
> org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
> at
> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
> at
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
> at
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
> at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
> at
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)