Stanislav Lukyanov created IGNITE-8134:
------------------------------------------

             Summary: 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
            Reporter: Stanislav Lukyanov
            Assignee: Stanislav Lukyanov


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:
=====================
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) { }
    }
}
=====================



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

Reply via email to