Skip to content

Commit 7fdae0e

Browse files
authored
Fix memory leakage in kit.PayloadUnaryServerInterceptor (#501)
* Fix memory leakage in kit.PayloadUnaryServerInterceptor Closes issue #498 A wrong assign creates multiple object for GC, and with every call appends new objects, so GC have to walk through thousands of objects. This causes high increasing memory and CPU usage. We saw in our services that it leads to CPU throttling and increasing of a memory usage. * Fix logging in PayloadUnaryServerInterceptor Issue #498
1 parent 6aeac52 commit 7fdae0e

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

logging/kit/payload_interceptors.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ func PayloadUnaryServerInterceptor(logger log.Logger, decider grpc_logging.Serve
3131
return handler(ctx, req)
3232
}
3333
// Use the provided log.Logger for logging but use the fields from context.
34-
logger = log.With(logger, append(serverCallFields(info.FullMethod), ctxkit.TagsToFields(ctx)...)...)
35-
logProtoMessageAsJson(logger, req, "grpc.request.content", "server request payload logged as grpc.request.content field")
34+
logEntry := log.With(logger, append(serverCallFields(info.FullMethod), ctxkit.TagsToFields(ctx)...)...)
35+
logProtoMessageAsJson(logEntry, req, "grpc.request.content", "server request payload logged as grpc.request.content field")
3636
resp, err := handler(ctx, req)
3737
if err == nil {
38-
logProtoMessageAsJson(logger, resp, "grpc.response.content", "server response payload logged as grpc.request.content field")
38+
logProtoMessageAsJson(logEntry, resp, "grpc.response.content", "server response payload logged as grpc.request.content field")
3939
}
4040
return resp, err
4141
}

0 commit comments

Comments
 (0)