cadence-java-client
cadence-java-client copied to clipboard
DecisionTaskFailure if pagination takes longer than task timeout
If pagination through the history takes longer than decision task timeout the following failure is recorded:
2020-02-18 12:59:00.507 ERROR 11 --- [oarding": 18633] c.u.c.internal.worker.PollerOptions : uncaught exception
java.lang.RuntimeException: Failure processing decision task. WorkflowID=***_JiraMonitor, RunID=cdb52df3-7be2-4e5a-9322-bcae61c9c1ba
at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:283)
at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:229)
at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:76)
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: java.lang.IllegalArgumentException: Invalid interval: PT-0.415S
at com.uber.cadence.common.RetryOptions$Builder.setExpiration(RetryOptions.java:161)
at com.uber.cadence.internal.replay.ReplayDecider$DecisionTaskWithHistoryIteratorImpl$1.next(ReplayDecider.java:604)
at com.uber.cadence.internal.replay.ReplayDecider$DecisionTaskWithHistoryIteratorImpl$1.next(ReplayDecider.java:588)
at com.uber.cadence.internal.replay.HistoryHelper$EventsIterator.next(HistoryHelper.java:152)
at com.uber.cadence.internal.replay.HistoryHelper$DecisionEventsIterator.next(HistoryHelper.java:232)
at com.uber.cadence.internal.replay.ReplayDecider.decideImpl(ReplayDecider.java:391)
at com.uber.cadence.internal.replay.ReplayDecider.decide(ReplayDecider.java:359)
at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.processDecision(ReplayDecisionTaskHandler.java:145)
at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTaskImpl(ReplayDecisionTaskHandler.java:125)
at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTask(ReplayDecisionTaskHandler.java:86)
at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:257)
at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:229)
at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:71)
... 3 common frames omitted
The root cause is the negative timeout generated by subtracting elapsed time from the decision task timeout here. The solution is to fail the decision task with a more clear message about the decision task timeout.