[ 
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)

Reply via email to