The issue tracker is ONLY used for bug report and feature request. Keep in mind, please check whether there is an existing same report before your raise a new one.
Alternately (especially if your communication is not a bug report), you can send mail to our mailing lists. We welcome any friendly suggestions, bug fixes, collaboration and other improvements.
Please ensure that your bug report is clear and that it is complete. Otherwise, we may be unable to understand it or to reproduce it, either of which would prevent us from fixing the bug. We strongly recommend the report(bug report or feature request) could include some hints as the following:
BUG REPORT
Please tell us about your environment:
Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):
consumer 启动的时候,同样的 warning 出现在 broker.log。
查阅了源码,发现consumer启动的时候,新起了pull service 和 rebalance service 两个线程, rebalance 后会更新subVersion。
猜测是 heartbeat 还没从 consumer 同步到broker, 携带了新subVersion 的 pullMessage 请求就发送到了broker,导致subscriptionData.getSubVersion() < requestHeader.getSubVersion()。
如果是这种情况,为什么在consumer端,不等同步broker完成后,再进行 pullMessage, 这样就可以避免这个报错。
求解疑~
FEATURE REQUEST
Please describe the feature you are requesting.
Provide any additional detail on your proposed use case for this feature.
Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
If there are some sub-tasks using -[] for each subtask and create a corresponding issue to map to the sub task:
I have this problem, too.Only when just started and not for everytime, it throws CODE25, even if there is only one instance in the consumer group.
I have the same warning exception almost every time.
2018-07-17 15:55:14,865 NettyClientPublicExecutor_1 [DefaultMQPushConsumerImpl.java:384] WARN : [] execute the pull request exception
org.apache.rocketmq.client.exception.MQBrokerException: CODE: 25 DESC: the consumer's subscription not latest
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
It's wired.
When I changed the logger of RocketmqClient to slf4j, and changed the level to WARN,
like <logger name="RocketmqClient" level="WARN"/>, Everything became chaos.
If the level is INFO, everything will be OK.
I don't know why, but I guess the issue may be concurrent problem.
When INFO log was disabled, possibly some thread run faster, likely 1ms, which make this happen:
if (subscriptionData.getSubVersion() < requestHeader.getSubVersion()) {
log.warn("The broker's subscription is not latest, group: {} {}", requestHeader.getConsumerGroup(),
subscriptionData.getSubString());
response.setCode(ResponseCode.SUBSCRIPTION_NOT_LATEST);
response.setRemark("the consumer's subscription not latest");
return response;
}
RocketMQ version: 4.3.1
Pull message and rebalance are running in two separate thread.
When starting a new consumer, it may have the warning exception, i think it's nothing, we can ignore this warning.
I would like to appreciate your @ymwneu engagement in the community if you could raise your question in the user email list. The issue is not the correct place for your request, please read the issue template, looking forward to your question in the email list :-)
Most helpful comment
It's wired.
When I changed the logger of
RocketmqClienttoslf4j, and changed theleveltoWARN,like
<logger name="RocketmqClient" level="WARN"/>, Everything became chaos.If the
levelisINFO, everything will be OK.I don't know why, but I guess the issue may be concurrent problem.
When
INFOlog was disabled, possibly some thread run faster, likely 1ms, which make this happen:RocketMQ version: 4.3.1