From 11e5bde4721d13a68c195684480c17f5f2a8463c Mon Sep 17 00:00:00 2001 From: Quinn Klassen Date: Wed, 29 May 2024 14:27:01 -0700 Subject: [PATCH 1/2] Fix testSignalContinueAsNewNonDeterminism --- .../signalTests/SignalContinueAsNewNonDeterminism.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java b/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java index 737d36448..7b247127d 100644 --- a/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java +++ b/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java @@ -47,7 +47,7 @@ import org.junit.Test; public class SignalContinueAsNewNonDeterminism { - private static final Semaphore workflowTaskProcessed = new Semaphore(1); + private static final Semaphore workflowTaskProcessed = new Semaphore(0); private static final CompletableFuture continueAsNew = new CompletableFuture<>(); @@ -78,10 +78,11 @@ public void testSignalContinueAsNewNonDeterminism() WorkflowClient.start(client::execute, false); for (int i = 0; i < 5; i++) { - workflowTaskProcessed.acquire(); client.signal(); + workflowTaskProcessed.acquire(); } continueAsNew.complete(true); + // Force replay, expected to fail with NonDeterministicException testWorkflowRule.invalidateWorkflowCache(); client.signal(); @@ -113,6 +114,7 @@ public String execute(boolean finish) { @Override public void signal() throws ExecutionException, InterruptedException { // Intentionally introduce non determinism + Thread.sleep(500); if (continueAsNew.getNow(false)) { Workflow.continueAsNew(true); } From 21fbdf42a2a5ffa104f274f8dc6d9896f0fa89b4 Mon Sep 17 00:00:00 2001 From: Quinn Klassen Date: Wed, 29 May 2024 14:27:44 -0700 Subject: [PATCH 2/2] Remove testing sleep --- .../workflow/signalTests/SignalContinueAsNewNonDeterminism.java | 1 - 1 file changed, 1 deletion(-) diff --git a/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java b/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java index 7b247127d..e55e1989b 100644 --- a/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java +++ b/temporal-sdk/src/test/java/io/temporal/workflow/signalTests/SignalContinueAsNewNonDeterminism.java @@ -114,7 +114,6 @@ public String execute(boolean finish) { @Override public void signal() throws ExecutionException, InterruptedException { // Intentionally introduce non determinism - Thread.sleep(500); if (continueAsNew.getNow(false)) { Workflow.continueAsNew(true); }