[
https://issues.apache.org/jira/browse/FELIX-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Berger updated FELIX-2378:
------------------------------------
Attachment: Activator.patch
Patch for org.apache.felix.shell.impl.Activator which used more fine grained
locking to avoid deadlock.
> Deadlock in Felix Shell implementation
> --------------------------------------
>
> Key: FELIX-2378
> URL: https://issues.apache.org/jira/browse/FELIX-2378
> Project: Felix
> Issue Type: Bug
> Components: Shell
> Affects Versions: shell-1.4.2
> Environment: Felix Framework Version 2.0.5
> SunOS castor 5.10 Generic_138888-06 sun4u sparc SUNW,Sun-Fire-V890
> java version "1.6.0_12"
> Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
> Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)
> Reporter: Alexander Berger
> Attachments: Activator.patch
>
>
> The class org.apache.felix.shell.impl.Activator$ShellServiceImpl makes heavy
> use of synchronized methods which synchronized on the ShellServiceImpl
> itself. This causes a deadlock if a refresh/resolve (PackageAdmin) cycle is
> initiated using the shell and some Commands are about to be removed from the
> OSGi service registry (as a result of the refresh/resolve).
> This happens because executeCommand locks the ShellServiceImpl instance and
> later on when the PackageAdmin indirectly triggers the removal of some
> registered Commands ShellServiceImpl.removeCommand(...) will try to lock the
> same ShellServiceImpl instance which is still locked by the executeCommand.
> I have created a patch for org.apache.felix.shell.impl.Activator (see
> Attachment) for a possible solution of this problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.