[ https://issues.apache.org/jira/browse/IGNITE-6571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Denis Mekhanikov resolved IGNITE-6571. -------------------------------------- Resolution: Duplicate > Service not found exception when calling service method before initialization > finished > -------------------------------------------------------------------------------------- > > Key: IGNITE-6571 > URL: https://issues.apache.org/jira/browse/IGNITE-6571 > Project: Ignite > Issue Type: Bug > Reporter: Denis Mekhanikov > Priority: Minor > > When trying to call a method of a service after its assignment is written to > cache, but before initialization is complete, then the following exception > appears in log: > {noformat} > [2017-10-06 16:33:14,688][ERROR][sys-#37%null%][GridTaskWorker] Failed to > obtain remote job result policy for result from ComputeTask.result(..) method > (will fail the whole task): GridJobResultImpl [job=C2 [c=ServiceProxyCallable > [mtdName=foo, svcName=testService, ignite=null]], sib=GridJobSiblingImpl > [sesId=1f1d3e1fe51-1d90f286-d1f5-452b-8e1e-621f218d0e3e, > jobId=3f1d3e1fe51-1d90f286-d1f5-452b-8e1e-621f218d0e3e, > nodeId=037457d8-e2d3-434b-8d34-70f152a3e777, isJobDone=false], > jobCtx=GridJobContextImpl > [jobId=3f1d3e1fe51-1d90f286-d1f5-452b-8e1e-621f218d0e3e, timeoutObj=null, > attrs={}], node=TcpDiscoveryNode [id=037457d8-e2d3-434b-8d34-70f152a3e777, > addrs=[0:0:0:0:0:0:0:1%lo, 127.0.0.1, 172.25.4.149], > sockAddrs=[/0:0:0:0:0:0:0:1%lo:47501, /127.0.0.1:47501, > latitude.gridgain.local/172.25.4.149:47501], discPort=47501, order=17, > intOrder=10, lastExchangeTime=1507296794313, loc=false, > ver=2.1.0#19700101-sha1:00000000, isClient=false], ex=class > o.a.i.IgniteException: Service not found: testService, hasRes=true, > isCancelled=false, isOccupied=true] > class org.apache.ignite.IgniteException: Remote job threw user exception > (override or implement ComputeTask.result(..) method if you would like to > have automatic failover for this exception). > at > org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:101) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1027) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1020) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6640) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1020) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:838) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1066) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1301) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1097) > 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.IgniteException: Service not found: > testService > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1850) > at > org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:566) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6608) > at > org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:560) > at > org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:489) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1181) > at > org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1908) > ... 7 more > Caused by: class > org.apache.ignite.internal.processors.service.GridServiceNotFoundException: > Service not found: testService > at > org.apache.ignite.internal.processors.service.GridServiceProxy$ServiceProxyCallable.call(GridServiceProxy.java:408) > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1847) > ... 14 more > {noformat} > After that method call waits for initialization to finish and returns > successfully. Exception in log looks misleading and makes people think that > something went wrong, but actually everything works as expected. This > exception should either be muted or replaced with some meaningful message. -- This message was sent by Atlassian JIRA (v7.6.3#76005)