[ 
https://issues.apache.org/jira/browse/IGNITE-8134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitriy Pavlov updated IGNITE-8134:
-----------------------------------
    Fix Version/s:     (was: 2.6)
                   2.7

> Services can't be deployed on servers outside of baseline topology
> ------------------------------------------------------------------
>
>                 Key: IGNITE-8134
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8134
>             Project: Ignite
>          Issue Type: Bug
>          Components: managed services, persistence
>    Affects Versions: 2.4
>            Reporter: Stanislav Lukyanov
>            Assignee: Denis Mekhanikov
>            Priority: Major
>             Fix For: 2.7
>
>
> If a node is not a part of the baseline topology, the services will never be 
> deployed on it. In particular, if that node calls a synchronous deploy* 
> method, the method will hang.
>  After the node is added to the baseline, all previously initiated 
> deployments succeed (and deploy* methods return).
> It seems that the issue is with the continuous query started by the 
> GridServiceProcessor on the ignite-sys-cache.
> Example:
>  =====================
> {code}
> public class BltServicesBug {
>     public static void main(String[] args) {
>         // start one node
>         IgniteConfiguration cfg1 = new IgniteConfiguration()
>             .setIgniteInstanceName("node1")
>             .setDataStorageConfiguration(
>                 new DataStorageConfiguration()
>                     .setDefaultDataRegionConfiguration(
>                         new DataRegionConfiguration()
>                             .setPersistenceEnabled(true)
>                     )
>             );
>         try (Ignite ignite1 = Ignition.start(cfg1)) {
>             // activate and set baseline topology
>             ignite1.cluster().active(true);
>             // start another node
>             IgniteConfiguration cfg2 = new IgniteConfiguration(cfg1)
>                 .setIgniteInstanceName("node2");
>             try (Ignite ignite2 = Ignition.start(cfg2)) { 
>                 // try to deploy a service; 
>                 // this call hangs until the second node is added to the BLT 
> (e.g. externally via control.sh) 
>                 ignite2.services().deployNodeSingleton("myService", new 
> MyServiceImpl()); System.out.println(">>>>> Deployed"); }
>             }
>         }
>         private static class MyServiceImpl implements Service {
>             @Override public void cancel(ServiceContext ctx) { }
>             @Override public void init(ServiceContext ctx) { }
>             @Override public void execute(ServiceContext ctx) { }
>         }
>     }
> }
> {code}
>  =====================



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to