[ https://issues.apache.org/jira/browse/GEODE-1702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15395090#comment-15395090 ]
Swapnil Bawaskar commented on GEODE-1702: ----------------------------------------- The ideal fix would be to enqueue the event while holding the transaction lock, but before invoking the AsyncEventListener make sure that the transaction has completed. > Release transaction lock before calling AsyncEventListener > ---------------------------------------------------------- > > Key: GEODE-1702 > URL: https://issues.apache.org/jira/browse/GEODE-1702 > Project: Geode > Issue Type: Bug > Components: transactions > Reporter: Swapnil Bawaskar > > The relavent workflow of transaction commit processing is as follows: > 1. Grab transaction locks > 2. perform conflict checks > 3. apply changes to locally > 4. enqueue events in AsyncEventQueue > 5. release transaction locks > However this is problematic since the AsyncEventListener could be called > while the tx locks are held. This prevents same entry from being modified in > the AsyncEventListener (within a transaction). > Transaction locks cannot be released before the events are enqueued to > prevent out-of-order events. -- This message was sent by Atlassian JIRA (v6.3.4#6332)