Date: 2018-09-24 08:23:14 -0400
From: Stuart McCulloch <mcculls@gmail.com>
Currently we maintain a lock on the locator when calling out to mediators (a variation on the listener pattern). This can lead to deadlocks when a mediator needs to lock a component, and at exactly the same time another thread already in that component calls back into the locator.
This bug will investigate ways to avoid holding onto the lock while calling out to external code.
Comment 2981176
Date: 2018-09-24 08:30:49 -0400
From: Stuart McCulloch <mcculls@gmail.com>
Until this is fixed implementations affected by this bug (which should be limited to those that work on activating other components) can replace their internal lock with the locator lock as a workaround. Since the affected calls are calling back into the locator, this is effectively hoisting that lock into the component to avoid the lock order issue.
This issue was created automatically with bugzilla2github
Bugzilla Bug 539379
Date: 2018-09-24 08:23:14 -0400 From: Stuart McCulloch <mcculls@gmail.com> To: Project Inbox <sisu-inbox@eclipse.org>
Last updated: 2018-09-24 08:30:49 -0400
Comment 2981172
Date: 2018-09-24 08:23:14 -0400 From: Stuart McCulloch <mcculls@gmail.com>
Currently we maintain a lock on the locator when calling out to mediators (a variation on the listener pattern). This can lead to deadlocks when a mediator needs to lock a component, and at exactly the same time another thread already in that component calls back into the locator.
This bug will investigate ways to avoid holding onto the lock while calling out to external code.
Comment 2981176
Date: 2018-09-24 08:30:49 -0400 From: Stuart McCulloch <mcculls@gmail.com>
Until this is fixed implementations affected by this bug (which should be limited to those that work on activating other components) can replace their internal lock with the locator lock as a workaround. Since the affected calls are calling back into the locator, this is effectively hoisting that lock into the component to avoid the lock order issue.