You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2015/09/14 14:57:46 UTC

[jira] [Commented] (IGNITE-1478) Service cannot be used on remote node immediately after deployment.

    [ 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)