Alex Volkov created IGNITE-9359: ----------------------------------- Summary: OptimizeMakeChangeGAExample hangs forever with additional nods in topology Key: IGNITE-9359 URL: https://issues.apache.org/jira/browse/IGNITE-9359 Project: Ignite Issue Type: Bug Components: ml Affects Versions: 2.6 Reporter: Alex Volkov
To reproduce this issue please follow these steps: 1. Run two nodes using ignite.sh script. For example: {code:java} bin/ignite.sh examples/config/example-ignite.xml -J-Xmx1g -J-Xms1g -J-DCONSISTENT_ID=node1 -J-DIGNITE_QUIET=false {code} 2. RunĀ HelloWorldGAExample from IDEA IDE. *Expecting result:* Example successfully run and completed. *Actual result:* There are a lot of NPE exceptions in example log: {code:java} [2018-08-23 17:38:59,246][ERROR][pub-#20][GridJobWorker] Failed to execute job due to unexpected runtime exception [jobId=2a309376561-70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, ses=GridJobSessionImpl [ses=GridTaskSessionImpl [taskName=o.a.i.ml.genetic.FitnessTask, dep=GridDeployment [ts=1535035116486, depMode=SHARED, clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, clsLdrId=4baf8376561-70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, userVer=0, loc=true, sampleClsName=o.a.i.i.processors.cache.distributed.dht.preloader.GridDhtPartitionFullMap, pendingUndeploy=false, undeployed=false, usage=2], taskClsName=o.a.i.ml.genetic.FitnessTask, sesId=b4209376561-70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, startTime=1535035123014, endTime=9223372036854775807, taskNodeId=70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, closed=false, cpSpi=null, failSpi=null, loadSpi=null, usage=1, fullSup=false, internal=false, topPred=o.a.i.i.cluster.ClusterGroupAdapter$AttributeFilter@5668ad01, subjId=70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, mapFut=GridFutureAdapter [ignoreInterrupts=false, state=INIT, res=null, hash=574227802]IgniteFuture [orig=], execName=null], jobId=2a309376561-70889d5c-33f2-4c96-bf1e-f280c0ac4a1c], err=null] java.lang.NullPointerException at org.apache.ignite.ml.genetic.FitnessJob.execute(FitnessJob.java:76) at org.apache.ignite.ml.genetic.FitnessJob.execute(FitnessJob.java:35) at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:568) at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6749) at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:562) at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:491) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} and it hangs on this one: {code:java} [2018-08-23 17:38:59,582][WARN ][sys-#54][AlwaysFailoverSpi] Received topology with only nodes that job had failed on (forced to fail) [failedNodes=[3db84480-08b8-4d54-9d3a-e23b53761f29, 70889d5c-33f2-4c96-bf1e-f280c0ac4a1c, 4f815cff-f77c-4a41-9ae1-ebb00b1dd44c]] class org.apache.ignite.cluster.ClusterTopologyException: Failed to failover a job to another node (failover SPI returned null) [job=org.apache.ignite.ml.genetic.FitnessJob@1045c79e, node=TcpDiscoveryNode [id=4f815cff-f77c-4a41-9ae1-ebb00b1dd44c, addrs=ArrayList [0:0:0:0:0:0:0:1, 127.0.0.1, 172.25.4.42, 172.25.4.92], sockAddrs=HashSet [/172.25.4.92:47501, /172.25.4.42:47501, /0:0:0:0:0:0:0:1:47501, /127.0.0.1:47501], discPort=47501, order=2, intOrder=2, lastExchangeTime=1535035115978, loc=false, ver=2.7.0#19700101-sha1:00000000, isClient=false]] at org.apache.ignite.internal.util.IgniteUtils$7.apply(IgniteUtils.java:853) at org.apache.ignite.internal.util.IgniteUtils$7.apply(IgniteUtils.java:851) at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:985) at org.apache.ignite.internal.IgniteComputeImpl.execute(IgniteComputeImpl.java:541) at org.apache.ignite.ml.genetic.GAGrid.calculateFitness(GAGrid.java:102) at org.apache.ignite.ml.genetic.GAGrid.evolve(GAGrid.java:171) at org.apache.ignite.examples.ml.genetic.change.OptimizeMakeChangeGAExample.main(OptimizeMakeChangeGAExample.java:148) Caused by: class org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: Failed to failover a job to another node (failover SPI returned null) [job=org.apache.ignite.ml.genetic.FitnessJob@1045c79e, node=TcpDiscoveryNode [id=4f815cff-f77c-4a41-9ae1-ebb00b1dd44c, addrs=ArrayList [0:0:0:0:0:0:0:1, 127.0.0.1, 172.25.4.42, 172.25.4.92], sockAddrs=HashSet [/172.25.4.92:47501, /172.25.4.42:47501, /0:0:0:0:0:0:0:1:47501, /127.0.0.1:47501], discPort=47501, order=2, intOrder=2, lastExchangeTime=1535035115978, loc=false, ver=2.7.0#19700101-sha1:00000000, isClient=false]] at org.apache.ignite.internal.processors.task.GridTaskWorker.checkTargetNode(GridTaskWorker.java:1235) at org.apache.ignite.internal.processors.task.GridTaskWorker.failover(GridTaskWorker.java:1203) at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:938) at org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1077) at org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1312) 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:125) at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: class org.apache.ignite.IgniteException: Failed to deserialize object [typeName=org.apache.ignite.ml.genetic.FitnessJob] at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:459) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1119) at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1923) ... 7 more Caused by: class org.apache.ignite.IgniteCheckedException: Failed to deserialize object [typeName=org.apache.ignite.ml.genetic.FitnessJob] at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10025) at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:440) ... 9 more Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to deserialize object [typeName=org.apache.ignite.ml.genetic.FitnessJob] at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:914) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716) 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:10019) ... 10 more Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to read field [name=fitnessFuncton] at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:191) at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:875) ... 16 more Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException: org.apache.ignite.examples.ml.genetic.change.OptimizeMakeChangeFitnessFunction at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:707) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1757) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716) at org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1984) at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702) at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187) ... 17 more Caused by: java.lang.ClassNotFoundException: org.apache.ignite.examples.ml.genetic.change.OptimizeMakeChangeFitnessFunction at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 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:8665) at org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:349) at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:698) ... 22 more {code} Please let me know if you need full logs. -- This message was sent by Atlassian JIRA (v7.6.3#76005)