Skip to content

Commit 5395000

Browse files
authored
Avoid calling async local Activity.Current multiple times (#1059)
1 parent f418e5d commit 5395000

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/Grpc.AspNetCore.Server/Internal/HttpContextServerCallContext.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ internal sealed partial class HttpContextServerCallContext : ServerCallContext,
3939
private Metadata? _responseTrailers;
4040
private Status _status;
4141
private AuthContext? _authContext;
42+
private Activity? _activity;
4243
// Internal for tests
4344
internal ServerCallDeadlineManager? DeadlineManager;
4445
private HttpContextSerializationContext? _serializationContext;
@@ -275,10 +276,9 @@ private void EndCallCore()
275276

276277
private void LogCallEnd()
277278
{
278-
var activity = GetHostActivity();
279-
if (activity != null)
279+
if (_activity != null)
280280
{
281-
activity.AddTag(GrpcServerConstants.ActivityStatusCodeTag, _status.StatusCode.ToTrailerString());
281+
_activity.AddTag(GrpcServerConstants.ActivityStatusCodeTag, _status.StatusCode.ToTrailerString());
282282
}
283283
if (_status.StatusCode != StatusCode.OK)
284284
{
@@ -358,10 +358,10 @@ protected override Task WriteResponseHeadersAsyncCore(Metadata responseHeaders)
358358
// Clock is for testing
359359
public void Initialize(ISystemClock? clock = null)
360360
{
361-
var activity = GetHostActivity();
362-
if (activity != null)
361+
_activity = GetHostActivity();
362+
if (_activity != null)
363363
{
364-
activity.AddTag(GrpcServerConstants.ActivityMethodTag, MethodCore);
364+
_activity.AddTag(GrpcServerConstants.ActivityMethodTag, MethodCore);
365365
}
366366

367367
GrpcEventSource.Log.CallStart(MethodCore);

0 commit comments

Comments
 (0)