You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@rocketmq.apache.org by 老胡 <23...@qq.com> on 2018/02/11 11:03:00 UTC

回复: 回复: 回复:rep eat logging error when using openmessaging

你好!         你的问题不在openmesseg标准,而是你使用了pull模式,pull不负责维护offset          你在使用pull请求数据的时候,offset计算错误,offset值小于0,过不了校验,报异常,在你提供的异常信息里面十分明确。这不是rocketmq问题。           使用push模式,或者你自己维护offset,使用pull。------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>
发送时间: 2018年2月11日(星期天) 晚上6:47
收件人: "users"<us...@rocketmq.apache.org>;
主题: Re: 回复: 回复:rep eat  logging error when using openmessaging


你好:HI,


	rocketmq-4.2.0中实现了openmessaging标准,我调用的就是该实现,这也是我的问题所在。
	Openmessaging is implemented in rocketmq-4.2.0,  which I use in my project. I'm just confused where is the mistake in the openmessaging-implementation.


-----原始邮&#x4EF6;-----
 发&#x4EF6;人:"老胡" <23...@qq.com>
 发送时间:2018-02-11 17:45:52 (星期日)
 收&#x4EF6;人: users <us...@rocketmq.apache.org>
 抄送: 
 主题: 回复: 回复:repeat  logging error when using openmessaging

你好!
       rocketmq的client只有push维护offset,pull不维护offset的。
       push模式下的offset维护分两种,一种是集群方式的维护,会定时发送给broker。一种是广播方式的维护,是保存在本地的。

       openmessaging是标准。没有具体的实现。从你的错误上看。openmessaging调用的rocketmq的client,client目前没有发现有问题。多谢。



------------------ 原始邮&#x4EF6; ------------------
发&#x4EF6;人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午5:40
收&#x4EF6;人: "users"<us...@rocketmq.apache.org>;

主题: 回复: 回复:repeat  logging error when using openmessaging



 你好!
Hi,


    多谢分析!
    Thanks for your attention.


    实际上,offset是由openmessaging内部的定时任务来维护的(在报错的错误栈中有调用顺序),所以我想知道的是,是否有人能用过openmessaging的包,该包是否有坑。
     Acturally, the offset of rmq is set by openmessaging-implementation. What I would like to know is that if there is anyone who has tried openmessaging-implementation and know why error appears.





 朱蔚林


  
发&#x4EF6;人: 老胡
发送时间: 2018-02-11 16:49
收&#x4EF6;人: users
主题: 回复:repeat logging error when using openmessaging


你好!异常十分明显。
      org.apache.rocketmq.client.exception.MQClientException: offset < 0  这里
  你传递的offset坐标有问题。
  你使用的pull模式,offset需要自己维护,如果你无法自己维护offset,可以使用push模式。


------------------ 原始邮&#x4EF6; ------------------
发&#x4EF6;人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午4:41
收&#x4EF6;人: "users"<us...@rocketmq.apache.org>;

主题: repeat logging error when using openmessaging



Hi all,

    I meet a problem when pulling data from rocketmq using openmessaging implementation.
    During my usage, I did get data, but at the same time I also got error message in my log file. I got a 70GB error log per day.
    In my error log file, the same error repeated like this:

    2018-02-11 16:40:19,882 [ERROR] [io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:151)] [PullMsgThread-5_nm_test_group_12115] - A error occurred in pull message process.
org.apache.rocketmq.client.exception.MQClientException: offset < 0
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pullSyncImpl(DefaultMQPullConsumerImpl.java:175)
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:161)
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:156)
	at org.apache.rocketmq.client.consumer.DefaultMQPullConsumer.pull(DefaultMQPullConsumer.java:251)
	at io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:133)
	at org.apache.rocketmq.client.consumer.MQPullConsumerScheduleService$PullTaskImpl.run(MQPullConsumerScheduleService.java:172)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

    Is there anybody who has ever used openmessaging implementation and knows how it happens and how to avoid it ?

    rmq version: 4.2.0,
    Java version: 1.8_25.

    Thanks a lot.

--------------
zhuweilin@iie.ac.c

回复: 回复: 回复: 回复: rep eat logging error when using openmessaging

Posted by 老胡 <23...@qq.com>.
你好!
      看了openmessagin的实现,pull模式的offset是由LocalMessageCache对象维护。猜想出现offset小于0,可能就是MessageQueue 对象的数据出现问题。
      如果你能得到PullConsumerImpl.registerPullTaskCallback方法里面匿名类中MessageQueue,与调用nextPullOffset返回的offset。才能定位问题。

------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 晚上7:24
收件人: "users"<us...@rocketmq.apache.org>;

主题: Re: 回复: 回复: 回复: rep eat  logging error when using openmessaging



 HI:


	我提的问题不是针对Pull客户端,也不是针对openmessaging标准,而是针对 rmq-4.2.0 中的openmessaging实现。
	Actually I'm not confusing about the pull-client, nor about the openmessaging protocol, but the implementation of the openmessaging protocol in rmq-4.2.0.


	在rocketmq-4.2.0中,有一块专门的openmessaging实现,我调用了其中的实现,然后发现的错误。我的提问是针对该实现,是否有不完善的地方,如何修正或者避免其中的坑。我为之前我邮件中说的不清楚的地方道歉。
	There is an implementation of openmessaging in rocketmq-4.2.0. I used it and find the error. My problem is how the error appears in the implementation and how can I get over it. And I apologize for my confusing description;


	openmessaging 实现地址:https://github.com/apache/rocketmq/tree/master/openmessaging
	The url of the openmessaging-implementation: https://github.com/apache/rocketmq/tree/master/openmessaging

-----原始邮件-----
 发件人:"老胡" <23...@qq.com>
 发送时间:2018-02-11 19:03:00 (星期日)
 收件人: users <us...@rocketmq.apache.org>
 抄送: 
 主题: 回复: 回复: 回复:rep eat  logging error when using openmessaging

你好!         你的问题不在openmesseg标准,而是你使用了pull模式,pull不负责维护offset          你在使用pull请求数据的时候,offset计算错误,offset值小于0,过不了校验,报异常,在你提供的异常信息里面十分明确。这不是rocketmq问题。           使用push模式,或者你自己维护offset,使用pull。------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>
发送时间: 2018年2月11日(星期天) 晚上6:47
收件人: "users"<us...@rocketmq.apache.org>;
主题: Re: 回复: 回复:rep eat  logging error when using openmessaging


你好:HI,


	rocketmq-4.2.0中实现了openmessaging标准,我调用的就是该实现,这也是我的问题所在。
	Openmessaging is implemented in rocketmq-4.2.0,  which I use in my project. I'm just confused where is the mistake in the openmessaging-implementation.


-----原始邮件-----
 发件人:"老胡" <23...@qq.com>
 发送时间:2018-02-11 17:45:52 (星期日)
 收件人: users <us...@rocketmq.apache.org>
 抄送: 
 主题: 回复: 回复:repeat  logging error when using openmessaging

你好!
       rocketmq的client只有push维护offset,pull不维护offset的。
       push模式下的offset维护分两种,一种是集群方式的维护,会定时发送给broker。一种是广播方式的维护,是保存在本地的。

       openmessaging是标准。没有具体的实现。从你的错误上看。openmessaging调用的rocketmq的client,client目前没有发现有问题。多谢。



------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午5:40
收件人: "users"<us...@rocketmq.apache.org>;

主题: 回复: 回复:repeat  logging error when using openmessaging



 你好!
Hi,


    多谢分析!
    Thanks for your attention.


    实际上,offset是由openmessaging内部的定时任务来维护的(在报错的错误栈中有调用顺序),所以我想知道的是,是否有人能用过openmessaging的包,该包是否有坑。
     Acturally, the offset of rmq is set by openmessaging-implementation. What I would like to know is that if there is anyone who has tried openmessaging-implementation and know why error appears.





 朱蔚林


  
发件人: 老胡
发送时间: 2018-02-11 16:49
收件人: users
主题: 回复:repeat logging error when using openmessaging


你好!异常十分明显。
      org.apache.rocketmq.client.exception.MQClientException: offset < 0  这里
  你传递的offset坐标有问题。
  你使用的pull模式,offset需要自己维护,如果你无法自己维护offset,可以使用push模式。


------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午4:41
收件人: "users"<us...@rocketmq.apache.org>;

主题: repeat logging error when using openmessaging



Hi all,

    I meet a problem when pulling data from rocketmq using openmessaging implementation.
    During my usage, I did get data, but at the same time I also got error message in my log file. I got a 70GB error log per day.
    In my error log file, the same error repeated like this:

    2018-02-11 16:40:19,882 [ERROR] [io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:151)] [PullMsgThread-5_nm_test_group_12115] - A error occurred in pull message process.
org.apache.rocketmq.client.exception.MQClientException: offset < 0
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pullSyncImpl(DefaultMQPullConsumerImpl.java:175)
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:161)
	at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:156)
	at org.apache.rocketmq.client.consumer.DefaultMQPullConsumer.pull(DefaultMQPullConsumer.java:251)
	at io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:133)
	at org.apache.rocketmq.client.consumer.MQPullConsumerScheduleService$PullTaskImpl.run(MQPullConsumerScheduleService.java:172)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

    Is there anybody who has ever used openmessaging implementation and knows how it happens and how to avoid it ?

    rmq version: 4.2.0,
    Java version: 1.8_25.

    Thanks a lot.

--------------
zhuweilin@iie.ac.c

Re: 回复: 回复: 回复:rep eat logging error when using openmessaging

Posted by 朱蔚林 <zh...@iie.ac.cn>.
你好:
HI:


我提的问题不是针对Pull客户端,也不是针对openmessaging标准,而是针对 rmq-4.2.0 中的openmessaging实现。
Actually I'm not confusing about the pull-client, nor about the openmessaging protocol, but the implementation of the openmessaging protocol in rmq-4.2.0.


在rocketmq-4.2.0中,有一块专门的openmessaging实现,我调用了其中的实现,然后发现的错误。我的提问是针对该实现,是否有不完善的地方,如何修正或者避免其中的坑。我为之前我邮件中说的不清楚的地方道歉。
There is an implementation of openmessaging in rocketmq-4.2.0. I used it and find the error. My problem is how the error appears in the implementation and how can I get over it. And I apologize for my confusing description;


openmessaging 实现地址:https://github.com/apache/rocketmq/tree/master/openmessaging
The url of the openmessaging-implementation: https://github.com/apache/rocketmq/tree/master/openmessaging

-----原始邮件-----
发件人:"老胡" <23...@qq.com>
发送时间:2018-02-11 19:03:00 (星期日)
收件人: users <us...@rocketmq.apache.org>
抄送:
主题: 回复: 回复: 回复:rep eat logging error when using openmessaging

你好! 你的问题不在openmesseg标准,而是你使用了pull模式,pull不负责维护offset 你在使用pull请求数据的时候,offset计算错误,offset值小于0,过不了校验,报异常,在你提供的异常信息里面十分明确。这不是rocketmq问题。 使用push模式,或者你自己维护offset,使用pull。
------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>
发送时间: 2018年2月11日(星期天) 晚上6:47
收件人: "users"<us...@rocketmq.apache.org>;
主题: Re: 回复: 回复:rep eat logging error when using openmessaging
你好:
HI,


rocketmq-4.2.0中实现了openmessaging标准,我调用的就是该实现,这也是我的问题所在。
Openmessaging is implemented in rocketmq-4.2.0,  which I use in my project. I'm just confused where is the mistake in the openmessaging-implementation.


-----原始邮件-----
发件人:"老胡" <23...@qq.com>
发送时间:2018-02-11 17:45:52 (星期日)
收件人: users <us...@rocketmq.apache.org>
抄送:
主题: 回复: 回复:repeat logging error when using openmessaging

你好!
       rocketmq的client只有push维护offset,pull不维护offset的。
       push模式下的offset维护分两种,一种是集群方式的维护,会定时发送给broker。一种是广播方式的维护,是保存在本地的。

       openmessaging是标准。没有具体的实现。从你的错误上看。openmessaging调用的rocketmq的client,client目前没有发现有问题。多谢。




------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午5:40
收件人: "users"<us...@rocketmq.apache.org>;
主题: 回复: 回复:repeat logging error when using openmessaging


你好!
Hi,


    多谢分析!
    Thanks for your attention.


    实际上,offset是由openmessaging内部的定时任务来维护的(在报错的错误栈中有调用顺序),所以我想知道的是,是否有人能用过openmessaging的包,该包是否有坑。
    Acturally, the offset of rmq is set by openmessaging-implementation. What I would like to know is that if there is anyone who has tried openmessaging-implementation and know why error appears.




朱蔚林
 
发件人: 老胡
发送时间: 2018-02-11 16:49
收件人: users
主题: 回复:repeat logging error when using openmessaging
你好!异常十分明显。

      org.apache.rocketmq.client.exception.MQClientException: offset < 0  这里
  你传递的offset坐标有问题。
  你使用的pull模式,offset需要自己维护,如果你无法自己维护offset,可以使用push模式。


------------------ 原始邮件 ------------------
发件人: "朱蔚林"<zh...@iie.ac.cn>;
发送时间: 2018年2月11日(星期天) 下午4:41
收件人: "users"<us...@rocketmq.apache.org>;
主题: repeat logging error when using openmessaging


Hi all,

    I meet a problem when pulling data from rocketmq using openmessaging implementation.
    During my usage, I did get data, but at the same time I also got error message in my log file. I got a 70GB error log per day.
    In my error log file, the same error repeated like this:

    2018-02-11 16:40:19,882 [ERROR] [io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:151)] [PullMsgThread-5_nm_test_group_12115] - A error occurred in pull message process.
org.apache.rocketmq.client.exception.MQClientException: offset < 0
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pullSyncImpl(DefaultMQPullConsumerImpl.java:175)
at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:161)
at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.pull(DefaultMQPullConsumerImpl.java:156)
at org.apache.rocketmq.client.consumer.DefaultMQPullConsumer.pull(DefaultMQPullConsumer.java:251)
at io.openmessaging.rocketmq.consumer.PullConsumerImpl$1.doPullTask(PullConsumerImpl.java:133)
at org.apache.rocketmq.client.consumer.MQPullConsumerScheduleService$PullTaskImpl.run(MQPullConsumerScheduleService.java:172)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

    Is there anybody who has ever used openmessaging implementation and knows how it happens and how to avoid it ?

    rmq version: 4.2.0,
    Java version: 1.8_25.

    Thanks a lot.

--------------
zhuweilin@iie.ac.c