@maxim
UI stack trace
3 INVALID_ARGUMENT: io.temporal.internal.replay.InternalWorkflowTaskException: Failure handling event 5 of 'EVENT_TYPE_WORKFLOW_EXECUTION_TIMED_OUT' type. IsReplaying=false, PreviousStartedEventId=0, workflowTaskStartedEventId=0, Currently Processing StartedEventId=0 at io.temporal.internal.statemachines.WorkflowStateMachines.handleEvent(WorkflowStateMachines.java:193) at io.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleEvent(ReplayWorkflowRunTaskHandler.java:140) at io.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleWorkflowTaskImpl(ReplayWorkflowRunTaskHandler.java:180) at io.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleQueryWorkflowTask(ReplayWorkflowRunTaskHandler.java:254) at io.temporal.internal.replay.ReplayWorkflowTaskHandler.handleQueryOnlyWorkflowTask(ReplayWorkflowTaskHandler.java:257) at io.temporal.internal.replay.ReplayWorkflowTaskHandler.handleWorkflowTask(ReplayWorkflowTaskHandler.java:112) at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:319) at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:279) at io.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:73) 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: java.lang.IllegalArgumentException: Unexpected event:event_id: 5 event_time { seconds: 1625735388 nanos: 194379926 } event_type: EVENT_TYPE_WORKFLOW_EXECUTION_TIMED_OUT task_id: 106982581 workflow_execution_timed_out_event_attributes { retry_state: RETRY_STATE_TIMEOUT } at io.temporal.internal.statemachines.WorkflowStateMachines.handleNonStatefulEvent(WorkflowStateMachines.java:418) at io.temporal.internal.statemachines.WorkflowStateMachines.handleEventImpl(WorkflowStateMachines.java:215) at io.temporal.internal.statemachines.WorkflowStateMachines.handleEvent(WorkflowStateMachines.java:178) ... 11 more
[
{
"eventId": "1",
"eventTime": { "seconds": "1625724588", "nanos": 188229207 },
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_STARTED",
"version": "0",
"taskId": "106979945",
"workflowExecutionStartedEventAttributes": {
"workflowType": { "name": "DslWorkflow" },
"parentWorkflowNamespace": "",
"parentInitiatedEventId": "0",
"taskQueue": {
"name": "CI_CD_WORKFLOW_TASK_QUEUE",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"input": {
"payloads": [
{
"metadata": { "encoding": "anNvbi9wbGFpbg==" },
"data": "IjVkZmQ0NWU5LTllNjgtNDYzNS05NGU2LTY0NmMzNWJkODgzZSI="
},
{ "metadata": { "encoding": "anNvbi9wbGFpbg==" }, "data": "<data>" }
]
},
"workflowExecutionTimeout": { "seconds": "10800", "nanos": 0 },
"workflowRunTimeout": { "seconds": "10800", "nanos": 0 },
"workflowTaskTimeout": { "seconds": "10", "nanos": 0 },
"continuedExecutionRunId": "",
"initiator": "CONTINUE_AS_NEW_INITIATOR_UNSPECIFIED",
"originalExecutionRunId": "e8126814-c41e-4c53-b9fa-e7e8a6689789",
"identity": "25@ci-cd-orchestrator-574dc69b77-dpwvq",
"firstExecutionRunId": "e8126814-c41e-4c53-b9fa-e7e8a6689789",
"attempt": 1,
"workflowExecutionExpirationTime": {
"seconds": "1625735388",
"nanos": 188000000
},
"cronSchedule": "",
"firstWorkflowTaskBackoff": { "seconds": "0", "nanos": 0 }
},
"attributes": "workflowExecutionStartedEventAttributes"
},
{
"eventId": "2",
"eventTime": { "seconds": "1625724588", "nanos": 188274935 },
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"version": "0",
"taskId": "106979946",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "CI_CD_WORKFLOW_TASK_QUEUE",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": { "seconds": "10", "nanos": 0 },
"attempt": 1
},
"attributes": "workflowTaskScheduledEventAttributes"
},
{
"eventId": "3",
"eventTime": { "seconds": "1625724588", "nanos": 253420482 },
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"version": "0",
"taskId": "106979951",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "2",
"identity": "25@ci-cd-orchestrator-574dc69b77-dpwvq",
"requestId": "83244fbb-d9df-479d-b0ef-c8a1fe8b06bc"
},
"attributes": "workflowTaskStartedEventAttributes"
},
{
"eventId": "4",
"eventTime": { "seconds": "1625724588", "nanos": 291253693 },
"eventType": "EVENT_TYPE_WORKFLOW_TASK_FAILED",
"version": "0",
"taskId": "106979954",
"workflowTaskFailedEventAttributes": {
"scheduledEventId": "2",
"startedEventId": "3",
"cause": "WORKFLOW_TASK_FAILED_CAUSE_UNSPECIFIED",
"failure": {
"message": "java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@3d1429d7 rejected from java.util.concurrent.ThreadPoolExecutor@530cfec6[Running, pool size = 600, active threads = 600, queued tasks = 0, completed tasks = 1371]",
"source": "JavaSDK",
"stackTrace": "io.temporal.internal.sync.WorkflowThreadImpl.start(WorkflowThreadImpl.java:264)\nio.temporal.internal.sync.DeterministicRunnerImpl.runUntilAllBlocked(DeterministicRunnerImpl.java:229)\nio.temporal.internal.sync.SyncWorkflow.eventLoop(SyncWorkflow.java:144)\nio.temporal.internal.replay.ReplayWorkflowExecutor.eventLoop(ReplayWorkflowExecutor.java:74)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler$EntityManagerListenerImpl.eventLoop(ReplayWorkflowRunTaskHandler.java:328)\nio.temporal.internal.statemachines.WorkflowStateMachines.eventLoop(WorkflowStateMachines.java:388)\nio.temporal.internal.statemachines.WorkflowStateMachines.access$500(WorkflowStateMachines.java:71)\nio.temporal.internal.statemachines.WorkflowStateMachines$WorkflowTaskCommandsListener.workflowTaskStarted(WorkflowStateMachines.java:809)\nio.temporal.internal.statemachines.WorkflowTaskStateMachine.handleCompleted(WorkflowTaskStateMachine.java:121)\nio.temporal.internal.statemachines.WorkflowTaskStateMachine.handleStarted(WorkflowTaskStateMachine.java:113)\nio.temporal.internal.statemachines.FixedTransitionAction.apply(FixedTransitionAction.java:45)\nio.temporal.internal.statemachines.StateMachine.executeTransition(StateMachine.java:137)\nio.temporal.internal.statemachines.StateMachine.handleHistoryEvent(StateMachine.java:91)\nio.temporal.internal.statemachines.EntityStateMachineBase.handleEvent(EntityStateMachineBase.java:63)\nio.temporal.internal.statemachines.WorkflowStateMachines.handleEventImpl(WorkflowStateMachines.java:210)\nio.temporal.internal.statemachines.WorkflowStateMachines.handleEvent(WorkflowStateMachines.java:178)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleEvent(ReplayWorkflowRunTaskHandler.java:140)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleWorkflowTaskImpl(ReplayWorkflowRunTaskHandler.java:180)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleWorkflowTask(ReplayWorkflowRunTaskHandler.java:150)\nio.temporal.internal.replay.ReplayWorkflowTaskHandler.handleWorkflowTaskWithEmbeddedQuery(ReplayWorkflowTaskHandler.java:201)\nio.temporal.internal.replay.ReplayWorkflowTaskHandler.handleWorkflowTask(ReplayWorkflowTaskHandler.java:114)\nio.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:319)\nio.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:279)\nio.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:73)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\njava.lang.Thread.run(Thread.java:748)\n",
"cause": {
"message": "Task java.util.concurrent.FutureTask@3d1429d7 rejected from java.util.concurrent.ThreadPoolExecutor@530cfec6[Running, pool size = 600, active threads = 600, queued tasks = 0, completed tasks = 1371]",
"source": "JavaSDK",
"stackTrace": "java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)\njava.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)\njava.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)\njava.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)\nio.temporal.internal.sync.WorkflowThreadImpl.start(WorkflowThreadImpl.java:247)\nio.temporal.internal.sync.DeterministicRunnerImpl.runUntilAllBlocked(DeterministicRunnerImpl.java:229)\nio.temporal.internal.sync.SyncWorkflow.eventLoop(SyncWorkflow.java:144)\nio.temporal.internal.replay.ReplayWorkflowExecutor.eventLoop(ReplayWorkflowExecutor.java:74)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler$EntityManagerListenerImpl.eventLoop(ReplayWorkflowRunTaskHandler.java:328)\nio.temporal.internal.statemachines.WorkflowStateMachines.eventLoop(WorkflowStateMachines.java:388)\nio.temporal.internal.statemachines.WorkflowStateMachines.access$500(WorkflowStateMachines.java:71)\nio.temporal.internal.statemachines.WorkflowStateMachines$WorkflowTaskCommandsListener.workflowTaskStarted(WorkflowStateMachines.java:809)\nio.temporal.internal.statemachines.WorkflowTaskStateMachine.handleCompleted(WorkflowTaskStateMachine.java:121)\nio.temporal.internal.statemachines.WorkflowTaskStateMachine.handleStarted(WorkflowTaskStateMachine.java:113)\nio.temporal.internal.statemachines.FixedTransitionAction.apply(FixedTransitionAction.java:45)\nio.temporal.internal.statemachines.StateMachine.executeTransition(StateMachine.java:137)\nio.temporal.internal.statemachines.StateMachine.handleHistoryEvent(StateMachine.java:91)\nio.temporal.internal.statemachines.EntityStateMachineBase.handleEvent(EntityStateMachineBase.java:63)\nio.temporal.internal.statemachines.WorkflowStateMachines.handleEventImpl(WorkflowStateMachines.java:210)\nio.temporal.internal.statemachines.WorkflowStateMachines.handleEvent(WorkflowStateMachines.java:178)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleEvent(ReplayWorkflowRunTaskHandler.java:140)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleWorkflowTaskImpl(ReplayWorkflowRunTaskHandler.java:180)\nio.temporal.internal.replay.ReplayWorkflowRunTaskHandler.handleWorkflowTask(ReplayWorkflowRunTaskHandler.java:150)\nio.temporal.internal.replay.ReplayWorkflowTaskHandler.handleWorkflowTaskWithEmbeddedQuery(ReplayWorkflowTaskHandler.java:201)\nio.temporal.internal.replay.ReplayWorkflowTaskHandler.handleWorkflowTask(ReplayWorkflowTaskHandler.java:114)\nio.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:319)\nio.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:279)\nio.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:73)\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\njava.lang.Thread.run(Thread.java:748)\n",
"applicationFailureInfo": {
"type": "java.util.concurrent.RejectedExecutionException",
"nonRetryable": false
},
"failureInfo": "applicationFailureInfo"
},
"applicationFailureInfo": {
"type": "io.temporal.internal.sync.WorkflowRejectedExecutionError",
"nonRetryable": false
},
"failureInfo": "applicationFailureInfo"
},
"identity": "25@ci-cd-orchestrator-574dc69b77-dpwvq",
"baseRunId": "",
"newRunId": "",
"forkEventVersion": "0",
"binaryChecksum": ""
},
"attributes": "workflowTaskFailedEventAttributes"
},
{
"eventId": "5",
"eventTime": { "seconds": "1625735388", "nanos": 194379926 },
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_TIMED_OUT",
"version": "0",
"taskId": "106982581",
"workflowExecutionTimedOutEventAttributes": {
"retryState": "RETRY_STATE_TIMEOUT"
},
"attributes": "workflowExecutionTimedOutEventAttributes"
}
]
Not sure if this matters, but here is the code for creating the workers. I create a worker for the workflow as well as a worker for each activity and a worker to publish metrics at the end of each workflow.
// Register workflow
WorkerFactory workerFactory = WorkerFactory.newInstance(workflowClient);
WorkerOptions workflowWorkerOptions =
WorkerOptions.newBuilder()
.setMaxConcurrentWorkflowTaskExecutionSize(400)
.setWorkflowPollThreadCount(4)
.build();
final Worker worker = workerFactory.newWorker(TASK_QUEUE, workflowWorkerOptions);
worker.registerWorkflowImplementationTypes(DslWorkflowImpl.class, CoolWorkflowImpl.class);
final WorkerOptions activityWorkerOptions =
WorkerOptions.newBuilder()
.setActivityPollThreadCount(4)
.setMaxConcurrentActivityExecutionSize(200)
.build();
for (BaseActivity activity : activities) {
final String taskQueueName = activity.getClass().getInterfaces()[0].getSimpleName();
final Worker activityWorker = workerFactory.newWorker(taskQueueName, activityWorkerOptions);
activityWorker.registerActivitiesImplementations(activity);
}
// register activity that publish metrics
WorkflowMetricPublisherActivity workflowMetricPublisherActivity =
new WorkflowMetricPublisherActivityImpl(bigQueryClient, config, metricsProvider);
final String taskQueueName =
workflowMetricPublisherActivity.getClass().getInterfaces()[0].getSimpleName();
final Worker metricActivityWorker =
workerFactory.newWorker(taskQueueName, activityWorkerOptions);
metricActivityWorker.registerActivitiesImplementations(workflowMetricPublisherActivity);
workerFactory.start();