Revert "[SymDB] DEBUG-5086 SymDB upload enable when DI is disabled"#8550
Conversation
This reverts PR #8510 so symbol upload once again follows Dynamic Instrumentation enablement while preserving later file-probe support. Co-authored-by: Cursor <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55b5998a5d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!newDebuggerSettings.DynamicInstrumentationEnabled | ||
| && newDebuggerSettings.DynamicSettings.DynamicInstrumentationEnabled != true) | ||
| { | ||
| return; |
There was a problem hiding this comment.
Do not consume SymDB initialization before remote enablement
When the process starts with DI disabled but another debugger product initializes the manager (for example Code Origin or Exception Replay) and RCM is available, the first call already flips _symDbInitialized at line 281 and then this new guard returns because DI is not yet requested. If remote config later sets dynamic_instrumentation_enabled=true, InitializeSymbolUploaderIfNeeded exits at the compare-exchange and the SymbolsUploader is never created, so remotely enabled DI loses symbol uploads. Move the one-time _symDbInitialized transition until after guards that can become true later, or reset it before returning here.
Useful? React with 👍 / 👎.
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8550) 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 (8550) - mean (73ms) : 70, 76
master - mean (74ms) : 70, 78
section Bailout
This PR (8550) - mean (76ms) : 74, 78
master - mean (77ms) : 75, 79
section CallTarget+Inlining+NGEN
This PR (8550) - mean (1,080ms) : 1031, 1129
master - mean (1,125ms) : 1073, 1176
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 (8550) - mean (115ms) : 110, 119
master - mean (116ms) : 110, 122
section Bailout
This PR (8550) - mean (115ms) : 111, 119
master - mean (118ms) : 110, 125
section CallTarget+Inlining+NGEN
This PR (8550) - mean (785ms) : 755, 816
master - mean (806ms) : 776, 836
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8550) - mean (101ms) : 98, 105
master - mean (104ms) : 98, 109
section Bailout
This PR (8550) - mean (105ms) : 98, 113
master - mean (102ms) : 99, 105
section CallTarget+Inlining+NGEN
This PR (8550) - mean (943ms) : 907, 979
master - mean (942ms) : 901, 984
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8550) - mean (103ms) : 96, 109
master - mean (102ms) : 96, 108
section Bailout
This PR (8550) - mean (102ms) : 100, 104
master - mean (104ms) : 98, 110
section CallTarget+Inlining+NGEN
This PR (8550) - mean (825ms) : 777, 874
master - mean (833ms) : 781, 885
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 (8550) - mean (204ms) : 194, 214
master - mean (205ms) : 193, 217
section Bailout
This PR (8550) - mean (209ms) : 200, 218
master - mean (210ms) : 198, 222
section CallTarget+Inlining+NGEN
This PR (8550) - mean (1,210ms) : 1149, 1270
master - mean (1,265ms) : 1215, 1314
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 (8550) - mean (291ms) : 278, 305
master - mean (296ms) : 278, 315
section Bailout
This PR (8550) - mean (293ms) : 277, 309
master - mean (296ms) : 281, 312
section CallTarget+Inlining+NGEN
This PR (8550) - mean (960ms) : 933, 988
master - mean (1,003ms) : 974, 1033
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8550) - mean (285ms) : 273, 297
master - mean (288ms) : 272, 304
section Bailout
This PR (8550) - mean (286ms) : 273, 299
master - mean (289ms) : 273, 305
section CallTarget+Inlining+NGEN
This PR (8550) - mean (1,161ms) : 1120, 1202
master - mean (1,180ms) : 1138, 1222
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8550) - mean (286ms) : 273, 298
master - mean (288ms) : 270, 306
section Bailout
This PR (8550) - mean (286ms) : 275, 298
master - mean (291ms) : 270, 312
section CallTarget+Inlining+NGEN
This PR (8550) - mean (1,064ms) : 984, 1143
master - mean (1,061ms) : 1005, 1118
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchmarksBenchmark execution time: 2026-05-01 17:28:41 Comparing candidate commit 55b5998 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 27 metrics, 0 unstable metrics, 59 known flaky benchmarks, 28 flaky benchmarks without significant changes.
|
…8565) ## Summary of changes - Reapplies #8510, which was previously reverted by #8550. - Restores the change so `Datadog.Trace` enables SymDB upload independently of Dynamic Instrumentation being enabled. ## Reason for change - We want SymDB to upload symbols even when DI is disabled (DEBUG-5086). - The original PR #8510 was reverted in #8550 because of an observed startup-time impact when SymDB was initialized independently of DI. ## Implementation details - Pure revert of revert commit `587c0655017587728bfd90fbc842bf448491af07` (#8550). - Restores the original logic from #8510 in `Instrumentation.cs`, `DebuggerManager.cs`, `DebuggerSettings.cs`, and the corresponding unit tests in `DebuggerManagerTests`, `DebuggerManagerDynamicTests`, and `DebuggerSettingsTests`. - No additional changes on top of the original #8510. ## Test coverage - No new tests added beyond what was restored from #8510 (those tests are reapplied as-is). - Tests not run locally for this revert-of-revert; relying on CI. ## Other details - The startup-time concern that motivated #8550 is being addressed in the open follow-up #8548 ("[SymDB] Defer SymDB startup work until remote enablement"). This PR should not be merged with #8548 lands (or the perf concern is otherwise resolved), otherwise we will reintroduce the regression that triggered the original revert. <!-- Fixes DEBUG-5086 -->
Summary of changes
Reason for change
master.Implementation details
01f5157075e90003af48a52c534dd3e6eceac57b.Other details