[ 
https://issues.apache.org/jira/browse/FELIX-1185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12714052#action_12714052
 ] 

Agemo Cui commented on FELIX-1185:
----------------------------------

It looks like the field m_componentActor is set to null nowhere. So the 
synchronous execution of the task "may not" exist.
I just checked FELIX-550 because of some indirect relation to this problem.

I'm just not clear if all the activation/deactivation tasks are queued to run, 
why would there be a race condition for the serviceRegistration? If we gonna 
take the calling unregister services out of the "Disable" task, then that would 
be a race condition for that field.  Or actually the code now is quite 
different from the code at that time?

Sorry, I'm just trying to learn the current code.

Your advise will be appreciated.
Thanks.

> If a static/mandatory reference to a service is unregistered, the component 
> should be deactivated synchronously instead of asynchronously
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1185
>                 URL: https://issues.apache.org/jira/browse/FELIX-1185
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>    Affects Versions: scr-1.0.8
>            Reporter: Agemo Cui
>             Fix For: scr-1.0.10
>
>
> In the specification cmpn 112.3.3 Reference Policy, it says "Component 
> configurations are deactivated before any bound service for a reference 
> having a static policy becomes unavailable."
> My understanding is the deactivate method of the component must be called 
> before any unbind method for a static/mandatory reference is called. And it's 
> reasonable for a static/mandatory reference to be still available in the 
> deactivate method.
> If the component is deactivated asynchronously when a static/mandatory 
> reference to a service is unregistered, then it's possible that the unbind 
> method is called before the deactivate method is called, which makes the 
> service unavailable in the deactivate method.
> This bug may relate to FELIX-1178.
> The fix for this bug should also fix FELIX-1178. No need to add a new flag.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to