Skip to content

Commit

Permalink
fix the memory leak in skywalking trace reporter (#29140)
Browse files Browse the repository at this point in the history
Signed-off-by: johnlanni <[email protected]>
  • Loading branch information
johnlanni authored Aug 19, 2023
1 parent 76ade2a commit 822ef56
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ void TraceSegmentReporter::report(TracingContextPtr tracing_context) {
ENVOY_LOG(trace, "Try to report segment to SkyWalking Server:\n{}", request.DebugString());

if (stream_ != nullptr) {
if (stream_->isAboveWriteBufferHighWatermark()) {
ENVOY_LOG(debug, "Failed to report segment to SkyWalking Server since buffer is over limit");
tracing_stats_->segments_dropped_.inc();
return;
}
tracing_stats_->segments_sent_.inc();
stream_->sendMessage(request, false);
return;
Expand Down
17 changes: 17 additions & 0 deletions test/extensions/tracers/skywalking/trace_segment_reporter_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,23 @@ TEST_F(TraceSegmentReporterTest, CallAsyncCallbackAndNothingTodo) {
reporter_->onReceiveMessage(std::make_unique<skywalking::v3::Commands>());
}

TEST_F(TraceSegmentReporterTest, NoReportWithHighWatermark) {
setupTraceSegmentReporter("{}");

TracingContextPtr segment_context =
SkyWalkingTestHelper::createSegmentContext(true, "NEW", "PRE");
SkyWalkingTestHelper::createSpanStore(segment_context, nullptr, "CHILD");

EXPECT_CALL(*mock_stream_ptr_, isAboveWriteBufferHighWatermark()).WillOnce(Return(true));
EXPECT_CALL(*mock_stream_ptr_, sendMessageRaw_(_, _)).Times(0);
reporter_->report(segment_context);

EXPECT_EQ(0U, mock_scope_.counter("tracing.skywalking.segments_sent").value());
EXPECT_EQ(1U, mock_scope_.counter("tracing.skywalking.segments_dropped").value());
EXPECT_EQ(0U, mock_scope_.counter("tracing.skywalking.cache_flushed").value());
EXPECT_EQ(0U, mock_scope_.counter("tracing.skywalking.segments_flushed").value());
}

} // namespace
} // namespace SkyWalking
} // namespace Tracers
Expand Down

0 comments on commit 822ef56

Please sign in to comment.