[ 
https://issues.apache.org/jira/browse/ROCKETMQ-145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15932100#comment-15932100
 ] 

Jaskey Lam edited comment on ROCKETMQ-145 at 3/20/17 3:01 AM:
--------------------------------------------------------------

[~Yukon] [~lizhanhui]
The code base is nearly not changed but the problem actually is easy to 
reproduced, I suspect what  brings the problem up is that the new version 
changes 
{code}
tihis.wait(0)`
{code}
 into 
{code}
`this.wait(10)` 
{code}
, is that right? which makes it possible to have race condition.
In the old version,  it will never wake up unless notified, now every 10ms, it 
will swap, and this make have race condition with the put message thread


was (Author: jaskey):
[~Yukon] [~lizhanhui]
The code base is nearly not changed but the problem actually is easy to 
reproduced, I suspect what  brings the problem up is that the new version 
changes 
{code}
tihis.wait(0)`
{code}
 into 
{code}
`this.wait(10)` 
{code}
, is that right? which makes it possible to have race condition, before it will 
never wake up unless notified.

> Hit ConcurrentModificationException in doWaitTransfer which happens very offen
> ------------------------------------------------------------------------------
>
>                 Key: ROCKETMQ-145
>                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-145
>             Project: Apache RocketMQ
>          Issue Type: Bug
>          Components: rocketmq-store
>    Affects Versions: 4.0.0-incubating
>            Reporter: Eason Chen
>            Assignee: yukon
>
> we use master and slave , sync transfer and asyn flush, happens this very 
> offen: 
> 2017-03-17 20:12:38 WARN GroupTransferService - GroupTransferService service 
> has exception. 
> java.util.ConcurrentModificationException: null
>         at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) 
> ~[na:1.8.0_121]
>         at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[na:1.8.0_121]
>         at 
> org.apache.rocketmq.store.ha.HAService$GroupTransferService.doWaitTransfer(HAService.java:277)
>  ~[rocketmq-store-4.0.0-incubating.jar:4.0.0-incubating]
>         at 
> org.apache.rocketmq.store.ha.HAService$GroupTransferService.run(HAService.java:301)
>  ~[rocketmq-store-4.0.0-incubating.jar:4.0.0-incubating]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to