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

Alex Heneveld commented on BROOKLYN-498:
----------------------------------------

Thread 1 is trying to publish to members (needing members list lock while 
holding the AttributeMap.values lock).

Main is updating the GROUP_MEMBERS sensor (needing AM.values lock) while adding 
a child member (holding members list lock).

We have a similar issue with addition/removal of children -- in 
AbstractEntity.addChild we've taken the view to publish outwith holding the 
lock which as a comment there notes could mean that we publish REMOVED _after_ 
publishing ADDED.  We could take the same approach to group members.  However 
it is nice being able to rely on publishing order.

The other option is to mandate that if the values lock is going to be sought 
while holding members or children, the values lock should be taken first.  This 
feels safer to me.  [~aledsage] ?

> Deadlock in MembershipTrackingPolicyTest when updating sensors vs group 
> members
> -------------------------------------------------------------------------------
>
>                 Key: BROOKLYN-498
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-498
>             Project: Brooklyn
>          Issue Type: Bug
>            Reporter: Alex Heneveld
>
> Core tests can hang due to this.  Set high invocation count eg on 
> {{testDeprecatedSetGroupWorks}} to expose.



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

Reply via email to