Fix lazy logger provider retry after failed build - #7761
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Retry cleanup may reuse disposed pipeline components after state mutation, and required changelog entries are missing.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Fixes lazy logger-provider retries after failed builds while preserving circular-dependency protection.
Changes:
- Unregisters failed provider instances safely.
- Adds retry and log-processing regression coverage.
- Adds identity protection for provider removal.
File summaries
| File | Summary |
|---|---|
test/OpenTelemetry.Tests/Logs/OpenTelemetryLoggingExtensionsTests.cs |
Adds failed-build retry coverage. |
src/OpenTelemetry/Logs/LoggerProviderSdk.cs |
Cleans up failed provider registration. |
src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs |
Adds identity-safe provider unregistration. |
Review details
Suppressed comments (1)
src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs:42
- This changes runtime logger-provider behavior by enabling a retry after a failed build. The repository requires every behavioral change to be listed in the affected component's
CHANGELOG.mdunder## Unreleasedwith a PR link, butsrc/OpenTelemetry/CHANGELOG.mdis unchanged; please add the entry.
public void UnregisterProvider(LoggerProviderSdk loggerProvider)
- Files reviewed: 3/3 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #7761 +/- ##
==========================================
- Coverage 91.92% 91.86% -0.07%
==========================================
Files 337 339 +2
Lines 18410 18511 +101
==========================================
+ Hits 16924 17005 +81
- Misses 1486 1506 +20
Flags with carried forward coverage won't be shown. Click here to find out more.
|
Fixes internal Splunk/Cisco codex scams.
Changes
Fixes a lazy logger-provider retry issue where a failed
LoggerProviderSdkconstruction could leave a partially initialized provider in builder state.
The failed provider is now removed from
LoggerProviderBuilderSdkstate beforeconstruction cleanup completes. An identity check ensures that only the failed
provider instance is removed, preserving the early registration required to
break circular
ILoggerFactorydependencies.Added a regression test covering a failed first build, a successful retry, and
processing of a subsequent log record.
Merge requirement checklist
[ ] AppropriateMinor, I do not have a plan to document it.CHANGELOG.mdfiles updated for non-trivial changes[ ] Changes in public API reviewed (if applicable)