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.
Retry statements and transactions that fail due to
lock_timeout
errors.DDL operations and backfills are run in a session in which
SET lock_timout TO xms'
has been set (x
defaults to500
but can be specified with the--lock-timeout
parameter). This ensures that a long running query can't cause other queries to queue up behind a DDL operation as it waits to acquire its lock.The current behaviour if a DDL operation or backfill batch times out when requesting a lock is to fail, forcing the user to retry the migration operation (start, rollback, or complete).
This PR retries individual statements (like the DDL operations run by migration operations) and transactions (used by backfills) if they fail due to a
lock_timeout
error. The retry uses an exponential backoff with jitter.Fixes #171