Skip to content

Handle missing Cosmos reminder deletes#10037

Merged
ReubenBond merged 1 commit into
mainfrom
reubenbond/fix-cosmos-reminder-delete-race
Apr 27, 2026
Merged

Handle missing Cosmos reminder deletes#10037
ReubenBond merged 1 commit into
mainfrom
reubenbond/fix-cosmos-reminder-delete-race

Conversation

@ReubenBond

@ReubenBond ReubenBond commented Apr 24, 2026

Copy link
Copy Markdown
Member

Summary

  • treat missing Cosmos reminder deletes as a normal unsuccessful remove operation
  • let LocalReminderService treat already-removed reminders as a successful unregister
  • add Cosmos reminder table coverage for shared reminder-table semantics

Testing

  • dotnet build test\Extensions\Orleans.Cosmos.Tests\Orleans.Cosmos.Tests.csproj -f net8.0 -nologo -v minimal --no-restore
  • dotnet test test\Extensions\Orleans.Cosmos.Tests\Orleans.Cosmos.Tests.csproj -f net8.0 -nologo -v minimal --no-build --filter "FullyQualifiedName~CosmosRemindersTableTests"
  • dotnet test test\Orleans.Reminders.Tests\Orleans.Reminders.Tests.csproj -nologo -v minimal --no-restore --filter "FullyQualifiedName~ReminderTests_TableGrain.Rem_Grain_Basic_StopByRef|FullyQualifiedName~ReminderTests_TableGrain.Rem_Grain_Basic_ListOps|FullyQualifiedName~MinimalReminderTests.MinimalReminderInterval"
Microsoft Reviewers: Open in CodeFlow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ReubenBond ReubenBond requested a review from Copilot April 27, 2026 17:34
@ReubenBond ReubenBond added this pull request to the merge queue Apr 27, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts reminder-table semantics to better handle “missing delete” scenarios in the Cosmos reminder table implementation, making unregister operations more idempotent and adding coverage to validate shared reminder-table expectations.

Changes:

  • Treat Cosmos reminder deletes which return NotFound the same as PreconditionFailed (unsuccessful remove) in CosmosReminderTable.RemoveRow.
  • Update LocalReminderService.UnregisterReminder to treat “already removed from the table” as a successful unregister.
  • Add Cosmos-based ReminderTableTestsBase coverage to validate shared reminder-table behavior (including delete-after-delete returning false).
Show a summary per file
File Description
test/Extensions/Orleans.Cosmos.Tests/CosmosRemindersTableTests.cs Adds reminder-table conformance tests for the Cosmos reminder table provider.
src/Orleans.Reminders/ReminderService/LocalReminderService.cs Makes unregister idempotent when the reminder row is already absent from the table.
src/Azure/Orleans.Reminders.Cosmos/CosmosReminderTable.cs Returns false (not exception) when delete encounters NotFound, aligning with expected reminder-table semantics.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 0

Merged via the queue into main with commit 61b69bf Apr 27, 2026
66 checks passed
@ReubenBond ReubenBond deleted the reubenbond/fix-cosmos-reminder-delete-race branch April 27, 2026 18:04
@github-actions github-actions Bot locked and limited conversation to collaborators May 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants