Nikolay Izhikov created IGNITE-23226:
----------------------------------------
Summary: Services: deployment failed but service descriptor stay
Key: IGNITE-23226
URL: https://issues.apache.org/jira/browse/IGNITE-23226
Project: Ignite
Issue Type: Bug
Reporter: Nikolay Izhikov
In case service failed to deploy
{{Ignite.services().serviceDescriptors().isEmpty() == false}}.
{code:java}
public class IgniteServiceDeployUnknownClassTest extends GridCommonAbstractTest
{
/** */
private static final String NOOP_SERVICE_CLS_NAME =
"org.apache.ignite.tests.p2p.NoopService";
/** */
public static final String NODE_FILTER_CLS_NAME =
"org.apache.ignite.tests.p2p.ExcludeNodeFilter";
/** */
private static ClassLoader extClsLdr;
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String
igniteInstanceName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
cfg.setPeerClassLoadingEnabled(false);
cfg.setFailureHandler(new StopNodeFailureHandler());
return cfg;
}
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
super.beforeTest();
extClsLdr = getExternalClassLoader();
}
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
stopAllGrids();
super.afterTest();
extClsLdr = null;
}
/** @throws Exception If failed. */
@Test
public void testFailWhenClassNotFound() throws Exception {
IgniteEx srv = startGrid(getConfiguration("server"));
IgniteEx cli = startClientGrid(1);
ServiceConfiguration svcCfg = new ServiceConfiguration()
.setName("TestDeploymentService")
.setService(((Class<Service>)extClsLdr.loadClass(NOOP_SERVICE_CLS_NAME)).getDeclaredConstructor().newInstance())
.setNodeFilter(((Class<IgnitePredicate<ClusterNode>>)extClsLdr.loadClass(NODE_FILTER_CLS_NAME))
.getConstructor(UUID.class)
.newInstance(cli.configuration().getNodeId()))
.setTotalCount(1);
assertThrowsWithCause(() -> cli.services().deploy(svcCfg),
ServiceDeploymentException.class);
assertTrue(cli.services().serviceDescriptors().isEmpty());
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)