Skip to content

WPB-25915 add timeout and duration metric for conversation migration#5244

Open
battermann wants to merge 5 commits into
developfrom
WPB-25915-add-timeout-and-duration-metric-for-conversation-migration
Open

WPB-25915 add timeout and duration metric for conversation migration#5244
battermann wants to merge 5 commits into
developfrom
WPB-25915-add-timeout-and-duration-metric-for-conversation-migration

Conversation

@battermann
Copy link
Copy Markdown
Contributor

@battermann battermann commented May 28, 2026

https://wearezeta.atlassian.net/browse/WPB-25915

I have tested that it works. However, those test cannot be committed, because they hook into the production migration code to simulate the blocking conversation migration.

Checklist

  • Add a new entry in an appropriate subdirectory of changelog.d
  • Read and follow the PR guidelines

@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label May 28, 2026
@battermann battermann marked this pull request as ready for review May 28, 2026 07:27
@battermann battermann requested review from a team as code owners May 28, 2026 07:28
@battermann battermann requested a review from Copilot May 28, 2026 07:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 adds timeout handling and duration observability for background-worker conversation migrations to make stuck per-conversation attempts visible and fail-fast.

Changes:

  • Adds optional timeout to MigrationOptions and applies it to per-conversation migration attempts.
  • Registers and records a Prometheus histogram for conversation migration attempt durations by outcome.
  • Documents the new timeout setting and updates package dependencies for Timeout time-unit support.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
services/background-worker/src/Wire/PostgresMigrations.hs Registers and passes the new conversation migration duration histogram.
services/background-worker/src/Wire/BackgroundWorker.hs Updates existing MigrationOptions constructor calls for the new timeout field.
libs/wire-subsystems/src/Wire/Migration.hs Adds timeout configuration and timeout exception type.
libs/wire-subsystems/src/Wire/ConversationStore/Migration.hs Applies per-conversation timeout logic and records duration metrics.
libs/types-common/types-common.cabal Adds polysemy-time dependency.
libs/types-common/src/Util/Timeout.hs Derives TimeUnit for Timeout.
libs/types-common/default.nix Adds polysemy-time to Nix dependencies.
docs/src/developer/reference/config-options.md Documents the new migration timeout option.
changelog.d/5-internal/WPB-25915 Adds a changelog entry file, but it is currently empty.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/src/developer/reference/config-options.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants