Github user wy96f commented on the issue:

    https://github.com/apache/activemq-artemis/pull/2484
  
    > > CursorIterator:hasNext
    > 
    > Im bit concerned with this doing a dirty read, as this isnt something 
that is trigger an ascyn action, in actual fact the hasNext is purposefully 
synchronized. (especially as recently some concurrency issues have been found 
in paging (e.g. howards current pr) im sensitive to us being too hap hazard 
here.
    
    
    I don't get why isPaging() in hasNext() needs to be consistent. The paging 
status can change after isPaging() unless we readlock isPaging() and subsequent 
operations. Without readlock, a) if isPaging() returns true, but the other 
thread set it to false, subsequent next() call reads no data and returns null; 
b) if isPaging() returns false, but the other thread set it to true(a new 
message coming), deliverAsync would be called later anyway.


---

Reply via email to