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)