[
https://issues.apache.org/jira/browse/FELIX-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Jencks resolved FELIX-3637.
---------------------------------
Resolution: Fixed
This particular concurrency problem was solved although there are others.
> DS bind concurrency problem
> ---------------------------
>
> Key: FELIX-3637
> URL: https://issues.apache.org/jira/browse/FELIX-3637
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.8.0
> Reporter: David Jencks
> Assignee: David Jencks
> Fix For: scr-1.8.0
>
>
> when two threads send events announcing services, the following can happen:
> - thread1 sees the state as "Unsatisfied" so tries to activate the component,
> changing the state to "Active" while we try to complete activation. This
> thread gets to the point of determining that there is another missing
> dependency but does not yet change the state back to "Unsatisified"
> - thread 2 (with the missing service) sees the state as Active so it goes on
> to consider whether it should rebind the "new" service. If the dependency is
> static and reluctant, it won't. In other cases, since the instance is not
> actually created, we'd get other problems.
> - thread 1 changes the state back to "Unsatisfied" and exits.
> This is hard to demonstrate with just DS services since they tend to run on
> one thread. With blueprint services that are dependencies to a DS service,
> it is easier to see since each blueprint bundle has its services started
> asynchronously on a separate thread.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira