Releases: DataDog/dd-trace-dotnet
Releases · DataDog/dd-trace-dotnet
3.9.1
Summary
- [Tracing/Serverless] Fix an issue in AWS Lambda layer where tracing failed in .NET 6 when using Ready2Run
- [Continuous Profiler] Fix bug in stack walking on Windows
Changes
Continuous Profiler
- [Profiler] Fix Windows 64 bit stack walking (#6583)
Fixes
- Track internal rewrites and discard NGEN images (#6588)
- Refactor the NGEN tracking fix to be more performant (#6598)
Build / Test
- Skip non-linux OCI package creation (#6586)
3.9.0
Summary
- [Tracer] Add support for Azure Functions SDK v2 and ASP.NET Core Integration
- [Tracer] Add support for RabbitMQ v7
- [Tracer] Add support for OpenTelemetry's DefaultTextMapPropagator when used without the SDK
- [Tracer] Fix container tagging for Alpine containers
- [ASM] Various bug fixes and reliability improvements
Changes
Tracer
- Add support for Microsoft.Azure.Functions.Worker.Core v2 (#6472)
- Add support for RabbitMQ v7 (#6479)
- Add CallTarget support for
ValueTask
in .NET FX and < .NET Core 3.1 (#6480) - Fix container tagging for Alpine containers (#6505)
- Move SpanContextPropagator to TracerManager (#6511)
- Fix Isolated Azure Functions performance when using
ASP.NET Core
Integration (#6567) - [Tracing] Provide default implementation for OpenTelemetry.Context.Propagation.Propagators.DefaultTextMapPropagator [AIDM-504] (#6544)
CI Visibility
- [CI Visibility] Add missing telemetry metrics (#6443)
- Add additional tests for CI Visibility configuration behaviour (#6513)
- Wait for background task in ConfigureCiCommand (#6535)
- [CI Visibility] Improve Git commands execution (#6545)
ASM
- [ASM] Fix WebApi blocking on Response (#6488)
- [ASM] Fix access violation exception when reading WAF addresses (#6510)
- [ASM] Context disposed related exceptions when calling the WAF (#6529)
- [ASM] Add a lock to handle WAF active addresses (#6566)
- [ASM] Catch HttpException when reading the request body in .net461 (#6459)
- [IAST] Lock vulnerabilities list access (#6531)
- [IAST] Added IAST instrumentation category to ado net Reader integrations (#6523)
Continuous Profiler
- [Profiler] Make
timer_create
-based CPU profiler default (#6315) - [Profiler] Cleanup repository (#6547)
- Revert "[Profiler] Make
timer_create
-based CPU profiler default" (#6579)
Debugger
- Fix pinned locals parsing + bump dotnet version for protobuf and eShopOnWeb exploration tests (#6475)
- [Debugger] Don't redact config/address tokens (#6552)
- [Debugger] Don't redact env tokens from probe snapshots (#6553)
- [Dynamic Instrumentation] DEBUG-3223 SymDB compression fix (#6556)
- [Dynamic Instrumentation] Change the way we are using the gzip stream in SymDB (#6562)
Serverless
- Run Azure Functions integration tests on .NET 8 and .NET 9 (#6517)
- [serverless] Upload serverless assets to Azure so we can release for a layer (#6561)
Build / Test
- [ASM] Refactor AspNetCore5DatabaseTests (#6482)
- MVP for test containers (with aerospike) (#5031)
- Bump FluentAssertions and add analyzers (#5087)
- Randomize the order of tests (#5831)
- K8s new tests scenarios (#6451)
- Vendor in Microsoft.OpenApi (#6461)
- Minor fixes for build warnings in samples (#6491)
- Change
CopyToOutputDirectory="Always"
toCopyToOutputDirectory="PreserveNewest"
(#6493) - Parallelise appsec system tests in CI (#6496)
- Disable continuous profiler in GenerateDumpIfDbgRequested (#6497)
- Build the test sample projects in a separate CI stage (#6498)
- [Test Package Versions Bump] Updating package versions (#6499)
- Consolidate all integration test targets into a single target (#6501)
- Ensure analyzer tests run against all TFMs (#6502)
- Expand number of files that require thorough testing (#6504)
- Reset CI Visibility after DuckTypingTests (#6509)
- Fix compilation of Samples.Security.AspNetCore5 (#6512)
- Fix race condition in TelemetryControllerSchedulerTests (#6514)
- [Test Package Versions Bump] Updating package versions (#6519)
- Actually include child processes when requested during a memory dump in tests (#6520)
- [Test Optimization] Collect more logs on EFD tests (#6522)
- Fix flakiness in Azure Functions (#6524)
- Redact
##vso
in CI (#6525) - Enable dependabot for Azure Functions sample (#6527)
- Skip the flaky XUnit named pipes tests (#6528)
- [Test Package Versions Bump] Updating package versions (#6530)
- Disable the locked tracer in the runner integration tests (#6532)
- Bump Microsoft.Azure.Functions.Worker.Extensions.Http from 3.0.12 to 3.2.0 in /tracer/test/test-applications/azure-functions/Samples.AzureFunctions.V4Isolated (#6533)
- Bump Microsoft.Azure.Functions.Worker.Extensions.Timer from 4.0.1 to 4.3.1 in /tracer/test/test-applications/azure-functions/Samples.AzureFunctions.V4Isolated (#6534)
- Add a Github action that ensures you correctly persist any changes to the samples (#6536)
- Actually include child processes when requested during a memory dump in tests - part 2 :D (#6537)
- Add missing build dependency (#6538)
- remove unused variable causing warnings (#6546)
- Disable profiling in smoke tests (#6548)
- Add wait strategy for aerospike (#6551)
- Don't run integration tests on
netcoreapp2.1
(#6560) - Move the aspnetcore benchmark (#6563)
- Indentation: fix wrapping issues with rider (#6570)
- Drop testing for macos-12 (#6572)
Miscellaneous
- Add support for more combinations of tags on telemetry metrics (#6429)
- [Tracing] Update telemetry metrics for OpenTelemetry integration (#6454)
- Stop using EventIdHash to compare messages in telemetry logs (#6526)
- Include extra tags in error logs (#6364)
- Log an error message when the profiler is loaded multiple times (#6503)
- [Crashtracking] Add more filtering on TypeLoadException (#6539)
- Don't log a warning for CORPROF_E_PROFILER_CANCEL_ACTIVATION (#6550)
- [Crashtracking] Tag reports with is_crash: true (#6568)
3.8.0
Summary
- [ASM] Improved error handling and reporting
- [ASM/IAST] Fix a crash occurring when an attribute is decorated with itself
- [Dynamic Instrumentation] Fix errors in symbol upload and exception replay
- [AWS Lambda] Encode non-ascii error messages
Changes
Tracer
- [Tracing] Refactor internal Span Links API (#6341)
- Support relative path in
DD_DOTNET_TRACER_HOME
(#6434) - Add support for
[DuckPropertyOrField]
(#6463)
ASM
- [ASM] Log
FormatException
fromget_Uri
as debug (#6489) - [ASM] Update Iast Log Warning to Error (#6492)
- [ASM] upgrade warning to error (#6421)
- [ASM] Fix IAST benchmark tests (#6462)
- [ASM] Error metric for unknown operator errors (#6465)
- [ASM] Introduce SecurityReporter for all reporting functions of SecurityCoordinator (#6481)
- [ASM] Normalise aspects exception logging (#6495)
- Fix build issues on aspects on net5.0 (#6500)
Debugger
- [Dynamic Instrumentation] Hotfix SymDB and ER (#6468)
Serverless
- [serverless] encode lambda error.msg and error.type (#6438)
Fixes
- [IAST] Fix recursive custom attribute crash (#6470)
Build / Test
- [IAST] Skip failing tests (#6455)
- repo: mandatory issue templates (AIDM-424) (#6456)
- K8s Lib Injection tests: run on a matrix (#6458)
- [Build] Fix version bump autogen files error (#6464)
- Fix the build and some versions (#6466)
- [IAST] skip dotnet 2.1 tests that can't work (#6467)
- Exclude common failure in smoke tests (#6469)
- allow running exploration tests on mac (#6474)
- [Test Package Versions Bump] Updating package versions (#6450)
- [Test Package Versions Bump] Updating package versions (#6478)
- [Test Package Versions Bump] Updating package versions (#6486)
- Parallelize unit tests (#6483)
- [IAST] Propagation tests reorg (#6487)
- fix UpdateVendoredCode on mac (#6490)
Miscellaneous
- [Crashtracking] Add a setting to disable crashtracking filtering (#6452)
3.7.0
Summary
- [IAST] Extend stored XSS to cover more databases
- [IAST] Support of DefaultInterpolatedStringHandler
- [Tracer] Add support for HotChocolate 14.x.x, GraphQL.NET 8.x.x, Aerospile.Client 8.x.x, MongoDB 3.0.0, and NpgSQL 9.x.x
- [Tracer] Fix runtime-metrics thread count
- [CI Visibility] Improve support for MSTest
Changes
Tracer
- Add Support for GraphQL HotChocolate v14 (#6248)
- Add support for Graph.NET v8 (#6423)
- Add support for
Aerospike.Client
v8 (#6424) - Add support for mongodb v3 (#6354)
- Update npgsql to support 9.x.x (#6350)
- Filter out dead threads in runtime metrics (#6298)
- Fix bug in manual instrumentation (#6330)
- Bail out if we're in a no-dynamic-code scenario (#6362)
- Remove settings snapshot generator (#6370)
- Ducktype instance type check (#6373)
- Remove old generated public APIs (#6376)
- Add try catch on shutdown (#6378)
- Simplify duplication in
IConfigurationSource
(#6386) - Make more integration settings case insensitive (#6393)
- Update config-in-code manual instrumentation to use an
IConfigurationSource
(#6397) - Remove the vendored arraypool eventsource (#6398)
- Make
DirectLogSubmissionSettings
properly immutable and removeImmutableDirectLogSubmissionSettings
(#6400) - Make
IntegrationSettings
properly immutable and removeImmutableIntegrationSettings
(#6405) - Make
ExporterSettings
properly immutable and removeImmutableExporterSettings
(#6408) - Validate data before EnumNgenModuleMethodsInliningThisMethod call (#6410)
- Make
TracerSettings
properly immutable and removeImmutableTracerSettings
(#6415) - [Tracer] Fix git metadata retrieval (#6444)
- [dd-dotnet] Catch error when failing to read env vars on IIS (#6430)
CI Visibility
- [CI Visibility] Fix MSTest integrarion bug (#6336)
- [CI Visibility] Specify if the user is setting the DD_SERVICE (#6348)
- [CI Visibility] Adding nullability checks (#6374)
- [CI Visibility] Use same number of execution in EFD tests (#6416)
- [CI Visibility] Set
TracerSettings
using a configuration source instead of mutating (#6399)
ASM
- [ASM] Native CallTarget definitions (#6252)
- [APM] Exclude windows only definitions from non windows dlls (#6270)
- [ASM] IAST events in span's
meta_struct
(#5803) - [ASM][ATO] Collect request headers on login user events (failures and success) (#6225)
- [ASM] Update WAF v1.21.0 Ruleset 1.13.3 (#6287)
- [ASM] Restore IAST unit tests (#6294)
- [ASM][ATO] Adapt v3 new login tags and fix signup tags (#6302)
- [ASM] Extend locking to cover _disposed member variable (#6319)
- [ASM] RASP: Command injection vulnerability implementation (#6323)
- [ASM]Fix appsec waf benchmark for real (#6329)
- [ASM] iast: Tainting of DefaultInterpolatedStringHandler (#6340)
- [ASM] Skip integration tests using Microsoft.Data.Sqlite on netcoreapp3.0 (#6342)
- [ASM] Skip
DefaultInterpolatedStringHandler
flaky tests (#6379) - [ASM] Fix possible stackoverflow if nested routedictionary (#6382)
- [IAST] fix tainting values stored in the db (#6389)
- [ASM] Fix IAST weak random vulnerability error (#6432)
- [ASM] Update WAF version to 1.22.0 (#6440)
- [ASM] Fix database tests (netcoreapp3.0) (#6442)
- [IAST] Native CallSites Definitions (#6241)
- [IAST] Fix compilation of Samples.Security.AspNetCore2 (#6441)
Continuous Profiler
- [Profiler] Use chrono types instead of integer type (#6288)
- [Profiler] Clean up profiler code (#6291)
- [Profiler] Force waiting for the
LibrariesInfoCache
service to be fully started (#6338) - [Shared] Fix bug in logger (#6335)
Debugger
- [Dynamic Instrumentation] DEBUG-2256 Do not create ProbeProcessor when LiveDebugger isn't fully initialized (#6092)
- [Dynamic Instrumentation] DEBUG-3223 Add compression support for SymDB (#6427)
Data Streams Monitoring
- Data Streams Monitoring support in Kinesis (#6428)
- [DSM] Switch from
ManualResetEventSlim
toAsyncManualResetEvent
(#6356) - [DSM] Switch .NET tracer to injecting both base64 & binary headers (#6448)
Miscellaneous
- [Crashtracking] Zero the stackframe upon creation (#6346)
- [Crashtracker] Fix missing GetThreadDescription symbol (#6357)
- [Crashtracker] Use blazesym API to retrieve buildid (#6347)
- [Crashtracking] Display a nicer error message when the glibc version is too old (#6402)
- [Crashtracking] Improve handling of unhandled exceptions on Windows (#6435)
- Trim whitespace in DBM_PROPAGATION_MODE (#6332)
- Change
ICorProfilerMethodEnum
to use theCOMPtr
(#6334) - Exclude InetMgr.exe from instrumentation (#6355)
- Introduce a SignatureBuilder to build signatures of arbitrary size (#6383)
- Use the signature builder in more places (#6384)
- [APM] Made native definition lists temporary (#6417)
Build / Test
- [Test Package Versions Bump] Updating package versions (#6351)
- [Test Package Versions Bump] Updating package versions (#6372)
- [Test Package Versions Bump] Updating package versions (#6392)
- [Test Package Versions Bump] Updating package versions (#6420)
- [Test Package Versions Bump] Updating package versions (#6437)
- [Test Package Versions Bump] Updating package versions (#6279)
- add the filepath we check for datadog.json to the output of diagnostic tool (#6273)
- Stop hiding build files in github search (#6299)
- Fix typo in smoke test (#6300)
- Fix CMake warnings (#6309)
- Ignore multiple instances of the same version of the tracer (#6310)
- Fix the debug symbol publish step in release process (#6312)
- Enable RuntimeMetricsShutdownSmokeTest only for .NET 9+ (#6316)
- Use agent telemetry proxy instead of the standalone telemetry (#6324)
- Try to fix flake in ManualInstrumentation tests (#6333)
- Fix alpine .NET Core 3.1 telemetry failures (#6339)
- Update
dotnet test
tests to take memory dump on hang (#6343) - Bump timeit to 0.3.2 (#6349)
- Try enabling debug in
EnumerateAssemblyReferencesTest
(#6352) - Update CODEOWNERS for IAST owned file (#6358)
- Add testing for latest Microsoft.Data.Sqlite (#6369)
- Removing MetaStruct check from TestSessionTimeoutVulnerability (#6395)
- Adding Delay to CheckForSmoke to Prevent Flakes (#6396)
- Dump process and children processes when a test hangups (#6401)
- Removing MetaStruct Check from TestDirectoryListingLeak (#6404)
- Report failures to update GitHub as build errors in Azure Devops (#6407)
- Pin the lang version in the Nuke build project (#6411)
- Fix checking for changes to generated files (#6412)
- Fix name of target creating trimming file + desc (#6422)
- Fix codeql to work on newer version of Ubuntu (#6445)
- Fix the no-op pipeline (#6449)
- Remove
PublicApiTests.PublicApiHasNotChanged
for Datadog.Trace.dll (#6385) - Removing Delay in Smoke Test Helper Method (#6403)
- [Profiler] Update tests to save output to xunit.txt files (#6160)
- Add more info when GenerateDumpIfDbgRequested fails (take 3) (#6325)
- Add more info when GenerateDumpIfDbgRequested fails (take 4) (#6344)
- [Profiler] Disable flaky check (#6367)
- [Profiler] Avoid ETW tests flackiness (#6368)
- [Profiler] Fix UBsan Job (#6380)
- [Profiler] Use Vcpkg download and install native dependencies (libdatadog) (#6388)
- [Profiler] Fix static analysis job (#6406)
3.6.1
Summary
- [Profiler] Fix a crash scenario on windows
- [CI Visibility] Catch crash when intelligent test runner upload fails
- [ASM IAST]: Fix for NullReferenceException in Stacktrace Walker
Changes
CI Visibility
- [CI Visibility] Catch
UploadRepositoryChanges
exceptions (#6331)
ASM
- [ASM] iast: Fix for NullReferenceException in Stacktrace Walker (#6326)
Continuous Profiler
- [Profiler] Fix a crash scenario on windows (#6328)
Miscellaneous
- [Crashtracking] Filter the ptrace_create hook (#6337)
3.6.0
Summary
- Adds support for .NET 9
- Adds DSM support for AWS SNS
- Add support for baggage propagation
- [CI Visibility] Add support for coverlet.msbuild coverage reporting
- [Dynamic Instrumentation] Collect code origin for exit spans
- [ASM] Fix shutdown bug
- [Continuous Profiler] Fix crash at shutdown
Changes
Tracer
- Baggage part 3/3: add public api to
Datadog.Trace.Manual
(#6190) - Baggage part 2/3: propagation (#6158)
- Remove dependency on System.IO.Compression for .NET Framework build (#6192)
- Add default value to StringBuilderCache, and use in more places (#6232)
- Enable baggage propagator by default (#6258)
- Add support for
AllowWriteStreamBuffering=false
inWebRequest
for .NET 9 (#6271) - Add initial support for .NET 9 (#6265)
- Ensure that we never run any call target instrumentations in partial trust (#6290)
CI Visibility
- [CI Visibility] Add more checks for the object pack files (#6256)
- [CI Visibility] GitInfoProvider refactor (#6259)
- [CI Visibility] Add support for coverlet.msbuild coverage reporting (#6284)
- [CI Visibility] Fix GitCommandParser test (#6289)
- [CI Visibility] Catch some gitinfo exceptions. (#6297)
ASM
- [ASM] Avoid HttpRequestValidationException when reading body or namevalueCollection values (#6185)
- [ASM] Fix issue with waf disposing while it might concurrently be updating (#6250)
- [ASM] Serialize ASM tags and metrics (#6272)
- [ASM] Fix benchmarks AppSecBodyBenchmarks: have a trace context to avoid null reference exceptions (#6274)
- [ASM] IAST: Add web form tests (#6276)
- [ASM] iast: Fix
Microsoft.Data.Sqlite
database tainting (#6295) - [IAST] Minor cleanup in IAST aspects (#6293)
- [IAST] Updated CallSite IL Dump (#6240)
Continuous Profiler
- [Profiler] CPU profiler: Check if the stackwalk lock was not already taken (#6198)
- [Profiler] Prevent
StackSamplerLoop
from crashing at shutdown (#6238) - [Profiler] Add metrics for cpu and walltime profilers (#6267)
- [Profiler] Fix crash at shutdown with the
timer_create
-based CPU profiler (#6268)
Debugger
- [Dynamic Instrumentation] DEBUG-2916 Stabilize the probe processor (#6077)
- [Dynamic Instrumentation] DEBUG-3088 Add object pool (#6105)
- [Dynamic Instrumentation] DEBUG-2913 Fix runtime reflection exceptions when getting field value (#6078)
- [Dynamic Instrumentation] DEBUG-2602 Collection expressions fixes (#6087)
- [Dynamic Instrumentation] DEBUG-3076 Code origin for exit spans (#6216)
- [Dynamic Instrumentation] DEBUG-3110 Fix how we access span in probe processor (#6242)
Miscellaneous
- Add DSM support for AWS SNS (#6253)
- Downgrade error to warning (#6263)
- Improve docs for building on mac (APMSP-1425) (#6254)
- baggage propagator clean up (#6266)
- Add additional exclusions for dependency collection (#6282)
Build / Test
- [IAST] Macos compilation warning fix (#6255)
- [refacto] Unify SNS and SQS instrumentation code (#6199)
- Add additional exclusions to for obsolete libraries (#6231)
- Fix typo in create_draft_release.yml (#6246)
- [Test Package Versions Bump] Updating package versions (#6249)
- Make snapshot tests compatible with running on Docker v2 (#6260)
- Fix R2R build for OSX-ARM64 (#6264)
- Small fixes for .NET 9 (#6277)
- Exclude Paket from exploration tests for now (#6283)
- Fix r2r manual instrumentation issue in .NET 9 x86 (#6286)
- Add more smoke testing for .NET 9 (#6296)
3.5.0
Summary
- Add support for Ready2Run and NGen behaviour with manual instrumentation
- Fix for IIS apps using
CustomConfigurationBuilder
with multiple apps in a pool - [DBM] Fix DBM bugs (pgssql query plan hints ignored,
DbDataSource
issues, missingTransaction
scope) - [ASM] Only run RASP file operations on read operations
- Fix Remote Configuration values should be 64-bit not 32-bit
Changes
Tracer
- Make
DD_TRACE_<INTEGRATION>_ENABLED
Case Insensitive (#6175) - Baggage part 1/3: change propagator signatures (#6157)
CI Visibility
- [CI Visibility] Fix errors detected from error tracking. (#6222)
ASM
- [ASM] remote configuration refactoring and simplifying updates (#6179)
- [ASM] Add rules version to all spans when ASM enabled (#6188)
- [ASM] Fix possible null reference exception in extracting headers (#6211)
- [ASM] Update ruleset to version 1.13.2 (#6218)
- [ASM] Restrict RASP Lfi operations to read operation only (#6221)
Continuous Profiler
- [Profiler] Make LibrariesInfoCache standalone (#6019)
- [Profiler] Make sure we log only once for DebugInfoStore errors (#6187)
- [Profiler] Improve EtwEventsManager cleanup (#6189)
- [Profiler] Fix bugs in the
timer_create
-based CPU profiler (#6229)
Fixes
- Add workaround for ASP.NET ConfigBuilder issue (#6147)
- Reject method NGEN image if there's a rejit request for that method. (#6184)
- Revert "Load the tracer/profiler after guardrails checks" (#6200)
- [DBM][fix] Do not prepend DBM injected comment when a pg plan hint is present (#6204)
- move all RC int values to long, to mirror RC backend (#6219)
- Fix
InvalidOperationException
in DBM propagation (#6233)
Build / Test
- [ASM] Fix TestExternalWafHeaders snapshot netcore 2.1 (#6202)
- [Test Package Versions Bump] Updating package versions (#6150)
- Inject startup hook preferentially into static constructor when available (#6154)
- add new integrations system tests scenario (#6177)
- Fix typo in create_draft_release.yml (#6194)
- Fix using the wrong pool for smoke tests (#6196)
- Pin Azure Functions version used in CI to get the integration tests running (#6203)
- [Test Package Versions Bump] Updating package versions (#6206)
- Fix some build warnings in sample apps (#6207)
- Fix IIS LoaderOptimisation tests not testing anything (#6209)
- Update CosmosDb snapshots (#6213)
- Fix flake in Ngen
ManualInstrumentationTests
(#6214) - Fixes Clion build on OSX (#6215)
- Run aspnetcore tests in other TFMs (#6217)
- Convert WebRequestTests to snapshot tests (#6223)
- Add smoke test for config builder instrumentation issue (#6224)
- Update version conflict test (#6226)
- [Test Package Versions Bump] Updating package versions (#6230)
- Add more info when GenerateDumpIfDbgRequested fails (take 2) (#6197)
- Add profiling scenario to onboarding tests (#6201)
- [Profiler] Remove non open source third party reference (#6163)
- [Dynamic Instrumentation] Fix line exploration tests (#6089)
Miscellaneous
2.61.0
3.4.1
Summary
- Fix a crash when .NET Framework and .NET Core run in the same process, which can typically happen when using IIS an ".NET CLR Version" is not set to "No Managed Code". May also affect applications running in Azure App Service.
Changes
Fixes
- Revert "Load the tracer/profiler after guardrails checks" (#6200)
2.60.0
Summary
- [Tracing] Add ability to disable additional ADO.NET Command Types using
DD_TRACE_DISABLED_ADONET_COMMAND_TYPES
(#6054) - [Serverless] Add support for 128-bit trace IDs for Lambda step functions (#6181)
Changes
Tracer
- Add ability to disable additional ADO.NET Command Types (#6054)
- [Tracer] Set _dd.base_service tag whenever a span's service name is different than the default value (DD_SERVICE) (#6122)
- Add support for the "new" dev.azure.com style URLs in SourceLink URL parsing logic (#6178)
Continuous Profiler
- [Profiler] Make sure Watcher thread is started before Sampler thread (#6128)
Serverless
- Extract Upper64 bit trace ID from extension response (#6181)