Skip to content

Commit bec337b

Browse files
Merge branch 'main' into set-commit-release-options
2 parents d8c05de + c7ebf25 commit bec337b

File tree

17 files changed

+407
-54
lines changed

17 files changed

+407
-54
lines changed

.github/actions/environment/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ runs:
6060
with:
6161
dotnet-version: |
6262
8.0.x
63-
9.0.202
63+
9.0.203
6464
6565
- name: Install .NET Workloads
6666
shell: bash

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010

1111
- Prevent users from disabling AndroidEnableAssemblyCompression which leads to untrappable crash ([#4089](https://github.com/getsentry/sentry-dotnet/pull/4089))
1212
- Added a `SentrySetCommitReleaseOptions` build property that can be specified separately from `SentryReleaseOptions` ([#4109](https://github.com/getsentry/sentry-dotnet/pull/4109))
13+
- Fixed MSVCRT build warning on Windows ([#4111](https://github.com/getsentry/sentry-dotnet/pull/4111))
14+
15+
### Features
16+
17+
- If an incoming HTTP request has the `traceparent` header, it is now parsed and interpreted like the `sentry-trace` header. Outgoing requests now contain the `traceparent` header to facilitate integration with servesr that only support the [W3C Trace Context](https://www.w3.org/TR/trace-context/). ([#4084](https://github.com/getsentry/sentry-dotnet/pull/4084))
1318

1419
## 5.5.1
1520

@@ -25,6 +30,12 @@
2530
- The `IScopeObserver` now has an `SetTrace` that allows observing changes to the scope's trace context. The SDK uses this to propagate the `trace ID` to `sentry-native`. This allows Sentry to connect errors coming from all layers of your application ([#4026](https://github.com/getsentry/sentry-dotnet/pull/4026))
2631
- Exception.HResult is now included in the mechanism data for all exceptions ([#4029](https://github.com/getsentry/sentry-dotnet/pull/4029))
2732

33+
### Dependencies
34+
35+
- Bump Native SDK from v0.8.2 to v0.8.3 [#4072](https://github.com/getsentry/sentry-dotnet/pull/4072))
36+
- [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#083)
37+
- [diff](https://github.com/getsentry/sentry-native/compare/0.8.2...0.8.3)
38+
2839
### Fixes
2940

3041
- Fixed symbolication and source context for net9.0-android ([#4033](https://github.com/getsentry/sentry-dotnet/pull/4033))
@@ -36,7 +47,7 @@
3647

3748
### Dependencies
3849

39-
- Bump Native SDK from v0.8.1 to v0.8.2 ([#4050](https://github.com/getsentry/sentry-dotnet/pull/4050))
50+
- Bump Native SDK from v0.8.1 to v0.8.2 ([#4050](https://github.com/getsentry/sentry-dotnet/pull/4050)
4051
- [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#082)
4152
- [diff](https://github.com/getsentry/sentry-native/compare/0.8.1...0.8.2)
4253
- Bump CLI from v2.42.2 to v2.43.0 ([#4036](https://github.com/getsentry/sentry-dotnet/pull/4036), [#4049](https://github.com/getsentry/sentry-dotnet/pull/4049), [#4060](https://github.com/getsentry/sentry-dotnet/pull/4060), [#4062](https://github.com/getsentry/sentry-dotnet/pull/4062))
@@ -118,6 +129,11 @@
118129
- .NET on iOS: Add experimental EnableAppHangTrackingV2 configuration flag to the options binding SDK ([#3877](https://github.com/getsentry/sentry-dotnet/pull/3877))
119130
- Added `SentryOptions.DisableSentryHttpMessageHandler`. Useful if you're using `OpenTelemetry.Instrumentation.Http` and ending up with duplicate spans. ([#3879](https://github.com/getsentry/sentry-dotnet/pull/3879))
120131

132+
### Dependencies
133+
134+
- Bump Native SDK from v0.7.17 to v0.7.18 ([#3891](https://github.com/getsentry/sentry-dotnet/pull/3891))
135+
- [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0718)
136+
- [diff](https://github.com/getsentry/sentry-native/compare/0.7.17...0.7.18)
121137
### Fixes
122138

123139
- Prevent Native EXC_BAD_ACCESS signal errors from being captured when managed NullRefrenceExceptions occur ([#3909](https://github.com/getsentry/sentry-dotnet/pull/3909))

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.202",
3+
"version": "9.0.203",
44
"rollForward": "disable",
55
"allowPrerelease": false
66
}

modules/sentry-native

Submodule sentry-native updated 48 files

src/Sentry.AspNet/HttpContextExtensions.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,27 @@ public static class HttpContextExtensions
3333
}
3434
}
3535

36+
private static W3CTraceHeader? TryGetW3CTraceHeader(HttpContext context, SentryOptions? options)
37+
{
38+
var value = context.Request.Headers.Get(W3CTraceHeader.HttpHeaderName);
39+
if (string.IsNullOrWhiteSpace(value))
40+
{
41+
return null;
42+
}
43+
44+
options?.LogDebug("Received Sentry trace header '{0}'.", value);
45+
46+
try
47+
{
48+
return W3CTraceHeader.Parse(value);
49+
}
50+
catch (Exception ex)
51+
{
52+
options?.LogError(ex, "Invalid Sentry trace header '{0}'.", value);
53+
return null;
54+
}
55+
}
56+
3657
private static BaggageHeader? TryGetBaggageHeader(HttpContext context, SentryOptions? options)
3758
{
3859
var value = context.Request.Headers.Get(BaggageHeader.HttpHeaderName);
@@ -64,7 +85,10 @@ public static void StartOrContinueTrace(this HttpContext httpContext)
6485
{
6586
var options = SentrySdk.CurrentOptions;
6687

88+
// If both sentry-trace and traceparent headers are present, sentry-trace takes precedence.
89+
// See: https://github.com/getsentry/team-sdks/issues/41
6790
var traceHeader = TryGetSentryTraceHeader(httpContext, options);
91+
traceHeader ??= TryGetW3CTraceHeader(httpContext, options)?.SentryTraceHeader;
6892
var baggageHeader = TryGetBaggageHeader(httpContext, options);
6993

7094
var method = httpContext.Request.HttpMethod;

src/Sentry.AspNetCore/Extensions/HttpContextExtensions.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,27 @@ internal static class HttpContextExtensions
6565
}
6666
}
6767

68+
public static W3CTraceHeader? TryGetW3CTraceHeader(this HttpContext context, SentryOptions? options)
69+
{
70+
var value = context.Request.Headers.GetValueOrDefault(W3CTraceHeader.HttpHeaderName);
71+
if (string.IsNullOrWhiteSpace(value))
72+
{
73+
return null;
74+
}
75+
76+
options?.LogDebug("Received Sentry trace header '{0}'.", value);
77+
78+
try
79+
{
80+
return W3CTraceHeader.Parse(value!);
81+
}
82+
catch (Exception ex)
83+
{
84+
options?.LogError(ex, "Invalid Sentry trace header '{0}'.", value);
85+
return null;
86+
}
87+
}
88+
6889
public static BaggageHeader? TryGetBaggageHeader(this HttpContext context, SentryOptions? options)
6990
{
7091
var value = context.Request.Headers.GetValueOrDefault(BaggageHeader.HttpHeaderName);

src/Sentry.AspNetCore/SentryMiddleware.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ public async Task InvokeAsync(HttpContext context, RequestDelegate next)
105105
context.Response.OnCompleted(() => hub.FlushAsync(_options.FlushTimeout));
106106
}
107107

108+
// If both sentry-trace and traceparent headers are present, sentry-trace takes precedence.
109+
// See: https://github.com/getsentry/team-sdks/issues/41
108110
var traceHeader = context.TryGetSentryTraceHeader(_options);
111+
traceHeader ??= context.TryGetW3CTraceHeader(_options)?.SentryTraceHeader;
109112
var baggageHeader = context.TryGetBaggageHeader(_options);
110113
var transactionContext = hub.ContinueTrace(traceHeader, baggageHeader);
111114

src/Sentry.Azure.Functions.Worker/HttpRequestDataExtensions.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,31 @@ internal static class HttpRequestDataExtensions
3030
}
3131
}
3232

33+
public static W3CTraceHeader? TryGetW3CTraceHeader(this HttpRequestData context, IDiagnosticLogger? logger)
34+
{
35+
var traceHeaderValue = context.Headers.TryGetValues(W3CTraceHeader.HttpHeaderName, out var values)
36+
? values.FirstOrDefault()
37+
: null;
38+
39+
if (traceHeaderValue is null)
40+
{
41+
logger?.LogDebug("Did not receive a Sentry trace header.");
42+
return null;
43+
}
44+
45+
logger?.LogDebug("Received Sentry trace header '{0}'.", traceHeaderValue);
46+
47+
try
48+
{
49+
return W3CTraceHeader.Parse(traceHeaderValue);
50+
}
51+
catch (Exception ex)
52+
{
53+
logger?.LogError(ex, "Invalid Sentry trace header '{0}'.", traceHeaderValue);
54+
return null;
55+
}
56+
}
57+
3358
public static BaggageHeader? TryGetBaggageHeader(this HttpRequestData context, IDiagnosticLogger? logger)
3459
{
3560
var baggageValue = context.Headers.TryGetValues(BaggageHeader.HttpHeaderName, out var value)

src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerMiddleware.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,10 @@ private async Task<TransactionContext> StartOrContinueTraceAsync(FunctionContext
123123
TransactionNameCache.TryAdd(transactionNameKey, transactionName);
124124
}
125125

126+
// If both sentry-trace and traceparent headers are present, sentry-trace takes precedence.
127+
// See: https://github.com/getsentry/team-sdks/issues/41
126128
var traceHeader = requestData.TryGetSentryTraceHeader(_logger);
129+
traceHeader ??= requestData.TryGetW3CTraceHeader(_logger)?.SentryTraceHeader;
127130
var baggageHeader = requestData.TryGetBaggageHeader(_logger);
128131

129132
return SentrySdk.ContinueTrace(traceHeader, baggageHeader, transactionName, Operation);

src/Sentry/Platforms/Native/buildTransitive/Sentry.Native.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<NativeLibrary Include="$(MSBuildThisFileDirectory)..\sentry-native\win-x64\sentry-native.lib" />
1919
<NativeLibrary Include="dbghelp.lib" />
2020
<NativeLibrary Include="winhttp.lib" />
21+
<NativeLibrary Include="Gdi32.lib" />
2122
</ItemGroup>
2223

2324
<ItemGroup Condition="'$(FrameworkSupportsNative)' == 'true' and '$(RuntimeIdentifier)' == 'linux-x64'">

0 commit comments

Comments
 (0)