Skip to content

Commit 7c311a4

Browse files
authored
[crashtracking] Change Crashtracking filtering default value (#7598)
1 parent ca50462 commit 7c311a4

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

tracer/src/Datadog.Trace.Tools.dd_dotnet/CreatedumpCommand.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,8 @@ private unsafe void GenerateCrashReport(int pid, int? signal, int? crashThread)
687687

688688
if (!isSuspicious)
689689
{
690-
var filteringEnabled = Environment.GetEnvironmentVariable(EnvironmentFilteringEnabled) ?? string.Empty;
690+
// Disable filtering by default.
691+
var filteringEnabled = Environment.GetEnvironmentVariable(EnvironmentFilteringEnabled) ?? "0";
691692

692693
if (filteringEnabled == "0"
693694
|| filteringEnabled.Equals("false", StringComparison.OrdinalIgnoreCase)
@@ -713,7 +714,7 @@ private unsafe void GenerateCrashReport(int pid, int? signal, int? crashThread)
713714
}
714715

715716
DebugPrint("Setting crash report metadata");
716-
_ = SetMetadata(crashReport, _runtime, exception);
717+
_ = SetMetadata(crashReport, _runtime, exception, isSuspicious);
717718

718719
try
719720
{
@@ -809,7 +810,7 @@ private bool SetSignal(ICrashReport crashReport, int signal)
809810
return true;
810811
}
811812

812-
private unsafe bool SetMetadata(ICrashReport crashReport, ClrRuntime runtime, ClrException? exception)
813+
private unsafe bool SetMetadata(ICrashReport crashReport, ClrRuntime runtime, ClrException? exception, bool isSuspicious)
813814
{
814815
var flavor = runtime.ClrInfo.Flavor switch
815816
{
@@ -855,6 +856,11 @@ private unsafe bool SetMetadata(ICrashReport crashReport, ClrRuntime runtime, Cl
855856
tags = [.. tags, ("exception", exception.ToString())];
856857
}
857858

859+
if (isSuspicious)
860+
{
861+
tags = [.. tags, ("crash_datadog", "true")];
862+
}
863+
858864
var bag = new List<IntPtr>();
859865

860866
try

tracer/test/Datadog.Trace.Tools.dd_dotnet.ArtifactTests/CreatedumpTests.cs

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ bool IsCrashReport(object payload)
480480
[SkippableTheory]
481481
[InlineData(true)]
482482
[InlineData(false)]
483-
public async Task IgnoreNonDatadogCrashes(bool mainThread)
483+
public async Task OptionallyDoNotReportNonDatadogCrashes(bool mainThread)
484484
{
485485
SkipOn.Platform(SkipOn.PlatformValue.MacOs);
486486
SkipOn.PlatformAndArchitecture(SkipOn.PlatformValue.Windows, SkipOn.ArchitectureValue.X86);
@@ -492,7 +492,7 @@ public async Task IgnoreNonDatadogCrashes(bool mainThread)
492492
using var helper = await StartConsoleWithArgs(
493493
arg,
494494
enableProfiler: true,
495-
[LdPreloadConfig, CrashReportConfig(reportFile)]);
495+
[LdPreloadConfig, CrashReportConfig(reportFile), ("DD_CRASHTRACKING_FILTERING_ENABLED", "1")]);
496496

497497
await helper.Task;
498498

@@ -507,11 +507,8 @@ public async Task IgnoreNonDatadogCrashes(bool mainThread)
507507
}
508508

509509
[SkippableFact]
510-
public async Task OptionallyReportNonDatadogCrashes()
510+
public async Task ReportNonDatadogCrashes()
511511
{
512-
// This test only validates the case where DD_CRASHTRACKING_FILTERING_ENABLED is set to 0
513-
// The default case is tested by IgnoreNonDatadogCrashes
514-
515512
SkipOn.Platform(SkipOn.PlatformValue.MacOs);
516513
SkipOn.PlatformAndArchitecture(SkipOn.PlatformValue.Windows, SkipOn.ArchitectureValue.X86);
517514

@@ -532,6 +529,29 @@ public async Task OptionallyReportNonDatadogCrashes()
532529
File.Exists(reportFile.Path).Should().BeTrue();
533530
}
534531

532+
[SkippableFact]
533+
public async Task MakeSureNonDatadogCrashesAreReportedByDefault()
534+
{
535+
SkipOn.Platform(SkipOn.PlatformValue.MacOs);
536+
SkipOn.PlatformAndArchitecture(SkipOn.PlatformValue.Windows, SkipOn.ArchitectureValue.X86);
537+
538+
using var reportFile = new TemporaryFile();
539+
540+
using var helper = await StartConsoleWithArgs(
541+
"crash",
542+
enableProfiler: true,
543+
[LdPreloadConfig, CrashReportConfig(reportFile)]);
544+
545+
await helper.Task;
546+
547+
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
548+
{
549+
helper.StandardOutput.Should().Contain(CrashReportUnfilteredExpectedOutput);
550+
}
551+
552+
File.Exists(reportFile.Path).Should().BeTrue();
553+
}
554+
535555
[SkippableFact]
536556
public async Task ReportedStacktrace()
537557
{

0 commit comments

Comments
 (0)