Do not mark empty frame crashes as complete#8119
Conversation
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8119) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (80ms) : 77, 82
master - mean (79ms) : 77, 82
section Bailout
This PR (8119) - mean (84ms) : 82, 87
master - mean (85ms) : 83, 86
section CallTarget+Inlining+NGEN
This PR (8119) - mean (1,136ms) : 1095, 1176
master - mean (1,122ms) : 1067, 1178
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (138ms) : 134, 142
master - mean (126ms) : 123, 129
section Bailout
This PR (8119) - mean (140ms) : crit, 136, 143
master - mean (126ms) : 122, 130
section CallTarget+Inlining+NGEN
This PR (8119) - mean (901ms) : crit, 853, 950
master - mean (808ms) : 755, 860
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (114ms) : 111, 117
master - mean (111ms) : 108, 114
section Bailout
This PR (8119) - mean (115ms) : 112, 118
master - mean (112ms) : 110, 114
section CallTarget+Inlining+NGEN
This PR (8119) - mean (795ms) : 736, 853
master - mean (784ms) : 717, 851
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (120ms) : 117, 123
master - mean (107ms) : 103, 111
section Bailout
This PR (8119) - mean (121ms) : crit, 117, 125
master - mean (108ms) : 105, 111
section CallTarget+Inlining+NGEN
This PR (8119) - mean (772ms) : crit, 751, 793
master - mean (723ms) : 698, 749
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (207ms) : 198, 216
master - mean (204ms) : 196, 212
section Bailout
This PR (8119) - mean (209ms) : 201, 217
master - mean (207ms) : 200, 213
section CallTarget+Inlining+NGEN
This PR (8119) - mean (1,197ms) : 1141, 1253
master - mean (1,191ms) : 1143, 1239
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (297ms) : 286, 307
master - mean (296ms) : 283, 309
section Bailout
This PR (8119) - mean (301ms) : 287, 315
master - mean (296ms) : 288, 305
section CallTarget+Inlining+NGEN
This PR (8119) - mean (979ms) : 923, 1035
master - mean (972ms) : 910, 1033
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (309ms) : 288, 329
master - mean (290ms) : 276, 304
section Bailout
This PR (8119) - mean (309ms) : 293, 325
master - mean (294ms) : 284, 305
section CallTarget+Inlining+NGEN
This PR (8119) - mean (1,035ms) : 988, 1082
master - mean (979ms) : 906, 1053
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8119) - mean (301ms) : 283, 319
master - mean (291ms) : 281, 300
section Bailout
This PR (8119) - mean (298ms) : 287, 310
master - mean (292ms) : 281, 302
section CallTarget+Inlining+NGEN
This PR (8119) - mean (946ms) : 844, 1048
master - mean (993ms) : 877, 1108
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1d20078 to
471f570
Compare
BenchmarksBenchmark execution time: 2026-02-03 20:42:15 Comparing candidate commit 471f570 in PR branch Found 6 performance improvements and 8 performance regressions! Performance is the same for 162 metrics, 16 unstable metrics. scenario:Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody net6.0
scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs net6.0
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool net6.0
scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch net6.0
scenario:Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark netcoreapp3.1
scenario:Benchmarks.Trace.RedisBenchmark.SendReceive net6.0
scenario:Benchmarks.Trace.SerilogBenchmark.EnrichedLog netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishSpan net6.0
|
Summary of changes
Checks that
framesisn't empty before we mark it ascomplete. The default fromlibdatadogis anincompletecrash.Reason for change
Saw crashes getting sent that had no message and no frames, yet were marked as
complete.Implementation details
Check if
framesisn't empty.Test coverage
None 😢
The tests that I see would need quite a bit of work to be able to mock/test the verify that we don't call
ddog_crasht_StackTrace_set_completeOther details