Bump Polly from 8.2.0 to 8.7.0 - #67
Closed
dependabot[bot] wants to merge 28 commits into
Closed
dependabot[bot] wants to merge 28 commits into
dependabot[bot] wants to merge 28 commits into
Conversation
The Math.Max(delaySeconds, 1) floor was applied unconditionally, causing NoRetry policy to still report a 1-second delay. Added early return for NoRetry before the delay calculation logic. Closes #38
RetryPolicyHelper.CalculateStatistics divided by TotalRetries without checking for zero, causing DivideByZeroException when maxAttempts is 1. Added a guard to return TimeSpan.Zero when there are no retries. Also fixed OutboxProcessor health tracking: ConsecutiveFailures was being reset even on partial batch failures (when some messages failed but ProcessedCount > 0). Now only resets on fully successful batches. Fixes #42, ref #44
…and-health Fix divide-by-zero in retry stats and health tracking
… ordered messages (closes #20)
- Add pre-check for IsLocked/Processing state before acquiring lock in ProcessSingleMessageAsync to avoid contention when multiple processor instances run in parallel (e.g. multiple Kubernetes replicas) - Catch OutboxRepositoryException wrapping DbUpdateConcurrencyException so the instance that loses the lock race skips gracefully instead of failing - Fix missing using directive for DbUpdateConcurrencyException - Fix broken transaction-wrapper code that referenced non-existent BeginTransactionAsync, undeclared startTime and _outboxMetrics vars, and stray duplicate closing braces - Fix OutboxException declared sealed, preventing all derived exception types from compiling - Fix ExportController syntax error ([]<string>() → Array.Empty<string>()) - Fix DependencyInjectionExtensions OTel configuration (SetResourceBuilder removed in newer SDK; use ConfigureResource; add missing using directives) - Add GetPrometheusMetricsAsync to IMetricsService interface to match impl - Update OutboxServiceTests to pass required IOutboxSerializer argument closes #40
- Add GetOldestPendingMessageCreatedAtAsync to IOutboxRepository and OutboxRepository to efficiently query only the oldest pending message timestamp (avoids loading all messages into memory) - Add OldestMessageAgeThresholdMinutes (default: 5 min) to OutboxProcessorOptions for configurable alert threshold - Add OldestMessageAge property to HealthMetrics so consumers can observe the current age - Add CheckOldestMessageAgeAsync method to OutboxProcessor; called every polling cycle — logs a Warning when the oldest pending message exceeds the configured threshold, helping detect stuck processors - Expose OldestMessageAge in the HealthCheckService health-cache object so it appears in the /health endpoint response closes #46
Add comprehensive unit tests for: - MessagePublishingService: message publishing workflow, retry handling, and error conditions - BatchProcessingService: batch processing with chunking and parallel execution - RetryPolicyHelper: retry delay calculation and statistics - DefaultMessagePublisher: message publisher implementation Tests include edge cases, error handling, and integration scenarios.
Add comprehensive integration tests that exercise the full outbox pattern: - Health check endpoint - Event publishing and message creation - Message retrieval and statistics - Idempotency handling with duplicate events - Dead letter queue workflow - Message review and requeue functionality - Concurrent message publishing - End-to-end message processing
Add comprehensive unit tests for the export service covering: - JSON and CSV format exports - Format case-insensitivity - Content type and size tracking - Timestamp tracking - Unsupported format error handling
--- updated-dependencies: - dependency-name: Polly dependency-version: 8.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Polly from 8.2.0 to 8.7.0.
Release notes
Sourced from Polly's releases.
8.7.0
Highlights
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.6.6...8.7.0
8.6.6
Highlights
ScheduledTaskExecutordeadlock whenTrySetResultruns continuations inline by @crnhrv in FixScheduledTaskExecutordeadlock whenTrySetResultruns continuations inline App-vNext/Polly#2953What's Changed
New Contributors
ScheduledTaskExecutordeadlock whenTrySetResultruns continuations inline App-vNext/Polly#2953Full Changelog: App-vNext/Polly@8.6.5...8.6.6
8.6.5
What's Changed
TimeoutRejectedExceptionby @martincostello in Pass timeout to TimeoutRejectedException App-vNext/Polly#2827Full Changelog: App-vNext/Polly@8.6.4...8.6.5
8.6.4
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.6.3...8.6.4
8.6.3
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.6.2...8.6.3
8.6.2
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.6.1...8.6.2
8.6.1
What's Changed
BulkheadSemaphoreFactoryby @ahusseini in Update maxQueuingCompounded in BulkheadSemaphoreFactory App-vNext/Polly#2638New Contributors
Full Changelog: App-vNext/Polly@8.6.0...8.6.1
8.6.0
What's Changed
AttemptNumbertoHedgingPredicateArgumentsby @peter-csala in Add AttemptNumber to HedgingPredicateArguments App-vNext/Polly#2603OnRetryArgumentscomments by @lchaoer in Update OnRetryArguments.cs App-vNext/Polly#2627New Contributors
Full Changelog: App-vNext/Polly@8.5.2...8.6.0
8.5.2
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.5.1...8.5.2
8.5.1
What's Changed
System.ComponentModel.DataAnnotations.Validatorby @kmcclellan in Synchronize access toSystem.ComponentModel.DataAnnotations.ValidatorApp-vNext/Polly#2428New Contributors
System.ComponentModel.DataAnnotations.ValidatorApp-vNext/Polly#2428Full Changelog: App-vNext/Polly@8.5.0...8.5.1
8.5.0
What's Changed
RetryAftertoBrokenCircuitException. by @DL444 in AddRetryAftertoBrokenCircuitException. App-vNext/Polly#2324[DebuggerDisableUserUnhandledExceptions]by @martincostello in Update to .NET 9 SDK App-vNext/Polly#2003New Contributors
RetryAftertoBrokenCircuitException. App-vNext/Polly#2324Full Changelog: App-vNext/Polly@8.4.2...8.5.0
8.4.2
What's Changed
... (truncated)
8.4.1
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.4.0...8.4.1
8.4.0
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.3.1...8.4.0
8.3.1
What's Changed
Polly.Specsby @gintsk in Improve unit test coverage inPolly.SpecsApp-vNext/Polly#1974New Contributors
Full Changelog: App-vNext/Polly@8.3.0...8.3.1
8.3.0
What's Changed
This release makes Simmy chaos engineering strategies part of the Polly.Core package. 🐵🚀
FaultGeneratorandOutcomeGenerator<T>by @martintmk in IntroduceFaultGeneratorandOutcomeGenerator<T>App-vNext/Polly#1911New Contributors
Full Changelog: App-vNext/Polly@8.2.1...8.3.0
... (truncated)
8.2.1
What's Changed
New Contributors
Full Changelog: App-vNext/Polly@8.2.0...8.2.1
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)