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)