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)