You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2013/12/17 11:40:07 UTC

[jira] [Resolved] (OAK-1290) ObservationManager#removeEventListener prone to deadlocks

     [ https://issues.apache.org/jira/browse/OAK-1290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dürig resolved OAK-1290.
--------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 0.15)
                   0.14

Fixed at http://svn.apache.org/r1551502. 

Unregistering an observation listener now blocks for no more than one second. If a pending {{onEvent()}} call does not complete by then a warning is logged and the listener will be unregistered without further waiting for the pending {{onEvent()}} call to complete.

> ObservationManager#removeEventListener prone to deadlocks 
> ----------------------------------------------------------
>
>                 Key: OAK-1290
>                 URL: https://issues.apache.org/jira/browse/OAK-1290
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: jcr
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>             Fix For: 0.14
>
>
> The contract for {{ObservationManager#removeEventListener}} mandates: "A listener may be deregistered while it is being executed. The deregistration method will block until the listener has completed executing."
> However a strict implementation of this contract is prone to deadlocks: clients unregistering event listeners need to take care not to hold a lock that is also acquired from the event listener being unregistered as this will lead to a deadlock



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)