Skip to content

Commit dd53202

Browse files
authored
test: drain HttpResponse in tests (5852)
Drain `HttpResponse` in tests Motivation: In Armeria CI, we saw Netty leak reports from kubernetes-client CI tests. After investigating, I found out that some of the tests did not consume `HttpResponse`. As a result, some `ByteBuf`s were not subscribed to and remained in the Publisher's internal buffer. Modifications: - Fixed to call `AsyncBody.consume()` where it was not called before. Result: No more leaks in CI builds.
2 parents eca3f31 + 11c0bfe commit dd53202

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

kubernetes-client-api/src/test/java/io/fabric8/kubernetes/client/http/AbstractInterceptorTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,12 @@ public CompletableFuture<Boolean> afterFailure(BasicBuilder builder, HttpRespons
225225
});
226226
// When
227227
try (HttpClient client = builder.build()) {
228-
client.consumeBytes(
228+
final HttpResponse<AsyncBody> asyncR = client.consumeBytes(
229229
client.newHttpRequestBuilder().uri(server.url("/not-found")).build(),
230230
(s, ab) -> ab.consume())
231231
.get(10, TimeUnit.SECONDS);
232+
asyncR.body().consume();
233+
asyncR.body().done().get(10L, TimeUnit.SECONDS);
232234
}
233235
// Then
234236
assertThat(interceptedResponses)
@@ -279,10 +281,12 @@ public void after(HttpRequest request, HttpResponse<?> response, Consumer<List<B
279281
});
280282
// When
281283
try (HttpClient client = builder.build()) {
282-
client.consumeBytes(
284+
final HttpResponse<AsyncBody> asyncR = client.consumeBytes(
283285
client.newHttpRequestBuilder().uri(server.url("/success")).build(),
284286
(s, ab) -> ab.consume())
285287
.get(10, TimeUnit.SECONDS);
288+
asyncR.body().consume();
289+
asyncR.body().done().get(10L, TimeUnit.SECONDS);
286290
}
287291
// Then
288292
assertThat(responseFuture)
@@ -306,10 +310,12 @@ public void after(HttpRequest request, HttpResponse<?> response, Consumer<List<B
306310
});
307311
// When
308312
try (HttpClient client = builder.build()) {
309-
client.consumeBytes(
313+
final HttpResponse<AsyncBody> asyncR = client.consumeBytes(
310314
client.newHttpRequestBuilder().uri(server.url("/client-error")).build(),
311315
(s, ab) -> ab.consume())
312316
.get(10, TimeUnit.SECONDS);
317+
asyncR.body().consume();
318+
asyncR.body().done().get(10L, TimeUnit.SECONDS);
313319
}
314320
// Then
315321
assertThat(responseFuture)

kubernetes-client-api/src/test/java/io/fabric8/kubernetes/client/http/AbstractSimultaneousConnectionsTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,11 @@ public void http1Connections() throws Exception {
118118
assertThat(asyncResponses)
119119
.hasSize(MAX_HTTP_1_CONNECTIONS)
120120
.extracting(CompletableFuture::join)
121-
.extracting(HttpResponse::code).containsOnly(204);
121+
.extracting(response -> {
122+
response.body().consume();
123+
return response.code();
124+
})
125+
.containsOnly(204);
122126
}
123127
}
124128

0 commit comments

Comments
 (0)