This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 210c374976 Fix memory leak in Zipkin API (#10126)
210c374976 is described below
commit 210c37497676a488785d9bb313551d57eabc52b7
Author: kezhenxu94 <[email protected]>
AuthorDate: Wed Dec 7 22:25:03 2022 +0800
Fix memory leak in Zipkin API (#10126)
---
docs/en/changes/changes.md | 1 +
.../server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java | 9 +++++----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 0bf4669869..081ca8aae2 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -29,6 +29,7 @@
* Remove abandon logic in MergableBufferedData, which caused unexpected
no-update.
* Fix miss set `LastUpdateTimestamp` that caused the metrics session to expire.
* Rename MAL rule `spring-sleuth.yaml` to `spring-micrometer.yaml`.
+* Fix memory leak in Zipkin API.
#### UI
diff --git
a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java
b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java
index 02dc0f8a81..2acaa9d848 100644
---
a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java
+++
b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/handler/ZipkinSpanHTTPHandler.java
@@ -100,10 +100,11 @@ public class ZipkinSpanHTTPHandler {
final HttpRequest req) {
final HistogramMetrics.Timer timer = histogram.createTimer();
final HttpResponse response =
HttpResponse.from(req.aggregate().thenApply(request -> {
- final HttpData httpData =
UnzippingBytesRequestConverter.convertRequest(ctx, request);
- final List<Span> spanList =
decoder.decodeList(httpData.byteBuf().nioBuffer());
- spanForward.send(spanList);
- return HttpResponse.of(HttpStatus.OK);
+ try (final HttpData httpData =
UnzippingBytesRequestConverter.convertRequest(ctx, request)) {
+ final List<Span> spanList =
decoder.decodeList(httpData.byteBuf().nioBuffer());
+ spanForward.send(spanList);
+ return HttpResponse.of(HttpStatus.OK);
+ }
}));
response.whenComplete().handle((unused, throwable) -> {
if (nonNull(throwable)) {