[ 
https://issues.apache.org/jira/browse/IGNITE-1478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14743484#comment-14743484
 ] 

Semen Boikov commented on IGNITE-1478:
--------------------------------------

Looks like CacheEntryUpdatedListeners used by GridServiceProcessor run 
synchronously, but all service deploy logic still runs asynchronously from 
special thread pool. 

I think correct fix is to rewrite service processor to use discovery events as 
it was done for continuous queries.

> Service cannot be used on remote node immediately after deployment.
> -------------------------------------------------------------------
>
>                 Key: IGNITE-1478
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1478
>             Project: Ignite
>          Issue Type: Task
>          Components: cache
>    Affects Versions: 1.1.4
>            Reporter: Vladimir Ozerov
>            Priority: Critical
>             Fix For: ignite-1.5
>
>
> Consider the following scenario:
> 1) Two nodes: A and B.
> 2) Node A deploys cluster-wide service through IgniteServices.deploy();
> 3) Once we exited deploy() method we are trying to get the service on the 
> node B in any way (invoke it, get proxy, get descriptor, whatever). 
> Step 3 might fail. This happens because 
> GridServiceProcessor.AssignmentListener is not notified synchronously when 
> service cache is update in transaction. 
> As a result, transacion ends, node A informs us about successful service 
> deployment, but it is still not usable on remote nodes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to