Skip to content

Replay pending deletions on QueueManager.Initialize#151

Merged
stidsborg merged 1 commit into
mainfrom
fix/queuemanager-init-pending-deletions
May 24, 2026
Merged

Replay pending deletions on QueueManager.Initialize#151
stidsborg merged 1 commit into
mainfrom
fix/queuemanager-init-pending-deletions

Conversation

@stidsborg
Copy link
Copy Markdown
Owner

Summary

  • DeliveredPositionsId was migrated in d8fefad from a parent-with-children layout to a single List<long> value, but QueueManager.Initialize still scanned for children — which no writer produces anymore.
  • Restarted flows therefore never replayed pending message deletions: messages already captured into delivery effects could remain in the message store indefinitely.
  • Read the persisted List<long> directly, matching the AfterFlush write pattern (delete from store, clear in place, flushless-upsert empty list).

Test plan

  • dotnet build core project
  • In-memory messaging test suite (56/56 pass)
  • Store-backed messaging suites (Postgres / SQL Server / MariaDB) on CI

DeliveredPositionsId was migrated in d8fefad from a parent-with-children
layout to a single List<long> value, but Initialize still scanned for
children — which no writer produces anymore. Restarted flows therefore
never replayed pending message deletions.

Read the persisted List<long> directly, matching the AfterFlush write
pattern.
@stidsborg stidsborg merged commit 81efdb4 into main May 24, 2026
8 checks passed
@stidsborg stidsborg deleted the fix/queuemanager-init-pending-deletions branch May 24, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant