Skip to content

Commit a4ec275

Browse files
Adjust latency and jitter for Toxi proxy to stabilize SDK resiliency IT (#1070)
1 parent 3dadc0b commit a4ec275

File tree

2 files changed

+25
-15
lines changed

2 files changed

+25
-15
lines changed

sdk-tests/src/test/java/io/dapr/it/actors/ActorSdkResiliencytIT.java renamed to sdk-tests/src/test/java/io/dapr/it/actors/ActorSdkResiliencyIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
/**
3939
* Test SDK resiliency.
4040
*/
41-
public class ActorSdkResiliencytIT extends BaseIT {
41+
public class ActorSdkResiliencyIT extends BaseIT {
4242

4343
private static final ActorId ACTOR_ID = new ActorId(UUID.randomUUID().toString());
4444

@@ -69,7 +69,7 @@ public class ActorSdkResiliencytIT extends BaseIT {
6969
@BeforeAll
7070
public static void init() throws Exception {
7171
daprRun = startDaprApp(
72-
ActorSdkResiliencytIT.class.getSimpleName(),
72+
ActorSdkResiliencyIT.class.getSimpleName(),
7373
DemoActorService.SUCCESS_MESSAGE,
7474
DemoActorService.class,
7575
true,

sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencytIT.java renamed to sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencyIT.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,18 @@
3636
/**
3737
* Test SDK resiliency.
3838
*/
39-
public class SdkResiliencytIT extends BaseIT {
39+
public class SdkResiliencyIT extends BaseIT {
4040

4141
private static final int NUM_ITERATIONS = 35;
4242

4343
private static final Duration TIMEOUT = Duration.ofMillis(100);
4444

45-
private static final Duration LATENCY = TIMEOUT.dividedBy(2);
45+
private static final Duration LATENCY = TIMEOUT.dividedBy(3);
4646

47-
private static final Duration JITTER = TIMEOUT.multipliedBy(2);
47+
private static final Duration JITTER = TIMEOUT.multipliedBy(3);
4848

4949
private static final int MAX_RETRIES = -1; // Infinity
5050

51-
private static DaprRun daprRun;
52-
5351
private static DaprClient daprClient;
5452

5553
private static ToxiProxyRun toxiProxyRun;
@@ -64,7 +62,7 @@ public class SdkResiliencytIT extends BaseIT {
6462

6563
@BeforeAll
6664
public static void init() throws Exception {
67-
daprRun = startDaprApp(SdkResiliencytIT.class.getSimpleName(), 5000);
65+
DaprRun daprRun = startDaprApp(SdkResiliencyIT.class.getSimpleName(), 5000);
6866
daprClient = new DaprClientBuilder().build();
6967
daprClient.waitForSidecar(8000).block();
7068

@@ -113,7 +111,7 @@ public static void tearDown() throws Exception {
113111
@Test
114112
public void retryAndTimeout() {
115113
AtomicInteger toxiClientErrorCount = new AtomicInteger();
116-
AtomicInteger retryOneClientErrorCount = new AtomicInteger();
114+
AtomicInteger retryOnceClientErrorCount = new AtomicInteger();
117115

118116
while (true){
119117
for (int i = 0; i < NUM_ITERATIONS; i++) {
@@ -129,7 +127,7 @@ public void retryAndTimeout() {
129127
daprRetriesOnceClient.saveState(STATE_STORE_NAME, key, value).block();
130128
} catch (Exception e) {
131129
// This call should fail sometimes. So, we count.
132-
retryOneClientErrorCount.incrementAndGet();
130+
retryOnceClientErrorCount.incrementAndGet();
133131
}
134132

135133
// We retry forever so that the call below should always work.
@@ -140,17 +138,29 @@ public void retryAndTimeout() {
140138
}
141139

142140
// We should have at least one success per client, otherwise retry.
143-
if(toxiClientErrorCount.get() < NUM_ITERATIONS && retryOneClientErrorCount.get() < NUM_ITERATIONS){
141+
if(toxiClientErrorCount.get() < NUM_ITERATIONS && retryOnceClientErrorCount.get() < NUM_ITERATIONS){
144142
// This assertion makes sure that toxicity is on
145-
assertTrue(toxiClientErrorCount.get() > 0);
146-
assertTrue(retryOneClientErrorCount.get() > 0);
143+
assertTrue(toxiClientErrorCount.get() > 0, "Toxi client error count is 0");
144+
assertTrue(retryOnceClientErrorCount.get() > 0, "Retry once client error count is 0");
147145
// A client without retries should have more errors than a client with one retry.
148-
assertTrue(toxiClientErrorCount.get() > retryOneClientErrorCount.get());
146+
147+
String failureMessage = formatFailureMessage(toxiClientErrorCount, retryOnceClientErrorCount);
148+
assertTrue(toxiClientErrorCount.get() > retryOnceClientErrorCount.get(), failureMessage);
149149
break;
150150
}
151151
toxiClientErrorCount.set(0);
152-
retryOneClientErrorCount.set(0);
152+
retryOnceClientErrorCount.set(0);
153153
}
154+
}
154155

156+
private static String formatFailureMessage(
157+
AtomicInteger toxiClientErrorCount,
158+
AtomicInteger retryOnceClientErrorCount
159+
) {
160+
return String.format(
161+
"Toxi client error count: %d, Retry once client error count: %d",
162+
toxiClientErrorCount.get(),
163+
retryOnceClientErrorCount.get()
164+
);
155165
}
156166
}

0 commit comments

Comments
 (0)