cadence-java-client icon indicating copy to clipboard operation
cadence-java-client copied to clipboard

Remove legacy code that execute activity with retryOption but without server side retry

Open longquanzheng opened this issue 4 years ago • 1 comments

https://github.com/uber/cadence-java-client/blob/dca853aaa047071caab8b16a345474aa3708d162/src/main/java/com/uber/cadence/internal/sync/SyncDecisionContext.java#L134

Related to https://github.com/uber/cadence-java-client/issues/654

During replay, if an activity doesn't not exist in the history, the replay would run into this branch and throw some weird error messages.

longquanzheng avatar Nov 16 '21 18:11 longquanzheng

It will throw error like:

java.lang.IllegalArgumentException: No value found for mutableSideEffectId=17eb87a3-bbd5-3310-b2c5-48ac24000057, during replay it usually indicates a different workflow runId than the original one
	at com.uber.cadence.internal.sync.SyncDecisionContext.mutableSideEffect(SyncDecisionContext.java:557)
	at com.uber.cadence.internal.sync.WorkflowInternal.mutableSideEffect(WorkflowInternal.java:277)
	at com.uber.cadence.internal.sync.WorkflowRetryerInternal.retryAsync(WorkflowRetryerInternal.java:106)
	at com.uber.cadence.internal.sync.WorkflowRetryerInternal.retryAsync(WorkflowRetryerInternal.java:95)
	at com.uber.cadence.internal.sync.SyncDecisionContext.executeActivity(SyncDecisionContext.java:136)
	at com.uber.cadence.internal.sync.ActivityStubImpl.executeAsync(ActivityStubImpl.java:44)
	at com.uber.cadence.internal.sync.ActivityStubBase.execute(ActivityStubBase.java:36)
	at com.uber.cadence.internal.sync.ActivityStubImpl.execute(ActivityStubImpl.java:26)
	at com.uber.cadence.internal.sync.ActivityInvocationHandler.lambda$getActivityFunc$0(ActivityInvocationHandler.java:51)
	at com.uber.cadence.internal.sync.ActivityInvocationHandlerBase.invoke(ActivityInvocationHandlerBase.java:76)
	at com.sun.proxy.$Proxy164.getEncryptedId(Unknown Source)
	at com.indeed.flex.workflow.workflows.sainsbury.compliance.SainsburyImpl.start(SainsburyImpl.java:57)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory$POJOWorkflowImplementation.execute(POJOWorkflowImplementationFactory.java:246)
	at com.uber.cadence.internal.sync.WorkflowRunnable.run(WorkflowRunnable.java:47)
	at com.uber.cadence.internal.sync.CancellationScopeImpl.run(CancellationScopeImpl.java:102)
	at com.uber.cadence.internal.sync.WorkflowThreadImpl$RunnableWrapper.run(WorkflowThreadImpl.java:99)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	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)

longquanzheng avatar Jan 05 '22 18:01 longquanzheng