[
https://issues.apache.org/jira/browse/JCR-2866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12988010#action_12988010
]
Sergiy Shyrkov commented on JCR-2866:
-------------------------------------
> I don't have any plans to backport the fix.
Good, I just wanted to know. Thank you!
> But I wonder why you still use 1.5 / 1.6. Why don't you upgrade?
We are using the latest 2.2.1 in our current project version (Jahia 6.5), but
we have a previous version of the product (Jahia 6.1.1) that is in production
and was using 1.5.0 at that time.
We will see, if it will be two critical for our customers (for now, we had two
incidents with deadlock on a cluster startup), we will apply a patch on our own.
Thank you for the clarifications!
> Cluster: Node type register/unregister deadlock
> -----------------------------------------------
>
> Key: JCR-2866
> URL: https://issues.apache.org/jira/browse/JCR-2866
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: clustering
> Reporter: Thomas Mueller
> Assignee: Thomas Mueller
> Fix For: 2.2.2
>
> Attachments: jcr-2866-a.patch
>
>
> A deadlock can occur when two cluster nodes concurrently register or
> unregister node types.
> Reason:
> NodeTypeRegistry.registerNodeTypes is synchronized, and calls
> eventChannel.registered(ntDefs), which calls AbstractJournal.lockAndSync(),
> which tries to lock AbstractJournal.rwLock.
> On the other hand, AbstractJournal.sync() locks AbstractJournal.rwLock, then
> calls NodeTypeRecord.process, which calls
> NodeTypeRegistry.unregisterNodeTypes, which is also synchronized.
> Possible solutions: Either
> - NodeTypeRegistry doesn't synchronize on the object when calling a
> eventChannel method,
> - or NodeTypeRegistry locks AbstractJournal.rwLock before synchronizing.
> There might be other solutions.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.