Ilya Kasnacheev created IGNITE-12284:
----------------------------------------

             Summary: When service class not found on any server nodes, service 
not deployed without any error
                 Key: IGNITE-12284
                 URL: https://issues.apache.org/jira/browse/IGNITE-12284
             Project: Ignite
          Issue Type: Bug
          Components: managed services
            Reporter: Ilya Kasnacheev


When service class presents on client node but not on server node, the 
following is printed on server:

{code}
[17:57:43,398][SEVERE][srvc-deploy-#44][GridServiceProcessor] Failed to 
initialize service (service will not be deployed): FService
class org.apache.ignite.IgniteCheckedException: com.gridgain.datetest.MyService
        at 
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10174)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor.copyAndInject(GridServiceProcessor.java:1440)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor.redeploy(GridServiceProcessor.java:1361)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor.processAssignment(GridServiceProcessor.java:1988)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor.onSystemCacheUpdated(GridServiceProcessor.java:1615)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor.access$300(GridServiceProcessor.java:126)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor$ServiceEntriesListener$1.run0(GridServiceProcessor.java:1597)
        at 
org.apache.ignite.internal.processors.service.GridServiceProcessor$DepRunnable.run(GridServiceProcessor.java:2064)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException: 
com.gridgain.datetest.MyService
        at 
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:707)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1758)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1717)
        at 
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:313)
        at 
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:102)
        at 
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
        at 
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10168)
        ... 10 more
Caused by: java.lang.ClassNotFoundException: com.gridgain.datetest.MyService
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at 
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8775)
        at 
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:349)
        at 
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:698)
        ... 16 more
{code}

but on client, ServiceDeploymentException is not thrown. Instead, deploy 
returns normally.

Code to reproduce:
{code}
public class ServiceStarterMain {

    public static void main(String[] args) {
        Ignition.setClientMode(true);
        Ignite ignite = Ignition.start();
        ServiceConfiguration serviceConfiguration = new ServiceConfiguration();
        serviceConfiguration.setName("FService");
        serviceConfiguration.setMaxPerNodeCount(4);
        serviceConfiguration.setTotalCount(10);
        serviceConfiguration.setService(new MyService());
        ignite.services().deploy(serviceConfiguration); // Exception expected, 
but does not happen
    }
}
{code}

against a blank Ignite node started from bin distro.

This affects Java and .Net.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to