Hi,
I got exception*[1]* after 2nd execution (on 1-node grid) of my
IgniteRunnable implementation which looks like this:
*@ComputeTaskSessionFullSupport*
public class ProcessStream implements IgniteRunnable {
private static final long serialVersionUID = 6894222808783502630L;
private static final String LAST_TIMESTAMP = "LAST_TIMESTAMP";
*@TaskSessionResource
private transient ComputeTaskSession ses;*
@LoggerResource
private transient IgniteLogger log;
@Override
public void run() {
AudioFrameSource stream = ...;
*Duration last = ses.loadCheckpoint(LAST_TIMESTAMP);*
Consumer<AudioFrame> detector = ...;
AudioFrame frame = null;
try {
while (!Thread.currentThread().isInterrupted()) {
frame = stream.nextFrame();
if (frame == null) break;
if (last != null) {
// notify processing resumed
}
// do some long work
*ses.saveCheckpoint(LAST_TIMESTAMP, frame.pts());*
frame.close();
}
} catch (Exception e) {
//...
throw new ClusterTopologyException("Retry", e);
}
}
}
where " frame.pts()" will return object of the following class:
public class Duration {
private final long timeUnits;
private final java.time.Duration duration;
private final double timeBase;
// ctors, getters, etc.
}
configuration of the CheckpointingSpi:
<property name="checkpointSpi">
<bean
class="org.apache.ignite.spi.checkpoint.jdbc.JdbcCheckpointSpi">
<property name="dataSource" ref="dataSource"/>
<property name="checkpointTableName"
value="stream._checkpoints"/>
</bean>
</property>
There is no [other] mappings/bindings/etc. of Duration class to Ignite.
Is there anything i missed in order to get it working?
*[1]* - 2018-02-01 17:17:24.013 ERROR 18740 --- [pub-#52%stream%]
o.a.i.i.processors.task.GridTaskWorker : Failed to obtain remote job
result policy for result from ComputeTask.result(..) method (will fail the
whole task): GridJobResultImpl [job=C4 [r=grid.ProcessStream@1b573de0],
sib=GridJobSiblingImpl
[sesId=b6f0ab15161-f04a2d3b-b4b1-4ca2-94b1-b6edaf9aed55,
jobId=d6f0ab15161-f04a2d3b-b4b1-4ca2-94b1-b6edaf9aed55,
nodeId=f04a2d3b-b4b1-4ca2-94b1-b6edaf9aed55, isJobDone=false],
jobCtx=GridJobContextImpl
[jobId=d6f0ab15161-f04a2d3b-b4b1-4ca2-94b1-b6edaf9aed55, timeoutObj=null,
attrs={}], node=TcpDiscoveryNode [id=f04a2d3b-b4b1-4ca2-94b1-b6edaf9aed55,
addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.6.251],
sockAddrs=[/0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500,
Hostname./192.168.6.251:47500], discPort=47500, order=1, intOrder=1,
lastExchangeTime=1517494606256, loc=true, ver=2.3.0#20171028-sha1:8add7fd5,
isClient=false], ex=class o.a.i.IgniteException: null, hasRes=true,
isCancelled=false, isOccupied=true]
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:1047)
at
org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1040)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6663)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1040)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:858)
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:1555)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4100(GridIoManager.java:126)
at
org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2751)
at
org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1515)
at
org.apache.ignite.internal.managers.communication.GridIoManager.processOrderedMessage(GridIoManager.java:1472)
at
org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:1627)
at
org.apache.ignite.internal.managers.communication.GridIoManager.sendOrderedMessage(GridIoManager.java:1749)
at
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:916)
at
org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:773)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:625)
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
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: org.apache.ignite.IgniteException: null
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:966)
at
org.apache.ignite.internal.GridTaskSessionImpl.loadCheckpoint0(GridTaskSessionImpl.java:747)
at
org.apache.ignite.internal.GridJobSessionImpl.loadCheckpoint(GridJobSessionImpl.java:276)
at grid.ProcessStream.run(ProcessStream.java:52)
at
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C4.execute(GridClosureProcessor.java:1944)
at
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:566)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6631)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:560)
... 5 common frames omitted
Caused by: org.apache.ignite.IgniteCheckedException: null
at
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9801)
at
org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager.loadCheckpoint(GridCheckpointManager.java:353)
at
org.apache.ignite.internal.GridTaskSessionImpl.loadCheckpoint0(GridTaskSessionImpl.java:744)
... 11 common frames omitted
Caused by: java.lang.NullPointerException: null
at
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.metadata(CacheObjectBinaryProcessorImpl.java:538)
at
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$2.metadata(CacheObjectBinaryProcessorImpl.java:194)
at
org.apache.ignite.internal.binary.BinaryContext.metadata(BinaryContext.java:1266)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.getOrCreateSchema(BinaryReaderExImpl.java:2005)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:284)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:183)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.<init>(BinaryReaderExImpl.java:162)
at
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:310)
at
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:99)
at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
at
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9795)
... 13 common frames omitted
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/