From b5e00fe20291f3b8ad6c2770134f1d45352991ce Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 25 Nov 2016 09:28:25 +0800 Subject: [PATCH] fix: event handler memory leak, buffer never be cleared --- .../disruptor/ack/StoreAckSpanEventHandler.java | 10 +++++++--- .../request/StoreRequestSpanEventHandler.java | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java index 3f150d730..4f361b404 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java @@ -35,11 +35,15 @@ public class StoreAckSpanEventHandler implements EventHandler { buffer.add(event); if (endOfBatch || buffer.size() == bufferSize) { - IndexMetaCollection collection = fileWriter.write(buffer); + try { + IndexMetaCollection collection = fileWriter.write(buffer); - operator.batchUpdate(collection); + operator.batchUpdate(collection); - HealthCollector.getCurrentHeathReading("StoreAckSpanEventHandler").updateData(HeathReading.INFO, "%s messages were successful consumed .", buffer.size()); + HealthCollector.getCurrentHeathReading("StoreAckSpanEventHandler").updateData(HeathReading.INFO, "%s messages were successful consumed .", buffer.size()); + } finally { + buffer.clear(); + } } } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java index 741f64f7a..3b7371c04 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java @@ -35,11 +35,15 @@ public class StoreRequestSpanEventHandler implements EventHandler