Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework retry and error classification #349

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Commits on May 23, 2023

  1. fix: prevent side-effects of additional retry-able errors

    This commit removes `IdempotentRequestEOF` and `IncompleteRequest` from
    the fail-able and prune-able classifier group. This prevents errors that
    should not affect the endpoint from being marked as failed or being
    pruned. To do so all classifiers groups are split into distinct groups
    and any cross references between them are removed.
    
    The main motivation for this change is to avoid confusion and bugs due to
    artificial dependencies between the groups.
    
    Resolves: cloudfoundry/routing-release#321
    Tested-By: `routing-release/scripts/run-unit-tests-in-docker gorouter`
    maxmoehl committed May 23, 2023
    Configuration menu
    Copy the full SHA
    0f9b398 View commit details
    Browse the repository at this point in the history
  2. refactor: split error handling and retry logic

    With this commit `isRetriable` no longer overwrites / wraps the error
    that is passed to it. This was done to accommodate context from the
    circumstances in which the error occurred into the error itself to be
    able to match on those later on. This mechanism has proven to cause bugs
    and increase overall complexity by abusing the error type.
    
    Instead `isRetriable` now only returns whether a certain combination of
    parameters is considered retry-able, either because the circumstances
    allow for it or because the error matches one of the retry-able error
    classifiers.
    
    Resovles: cloudfoundry/routing-release#321
    maxmoehl committed May 23, 2023
    Configuration menu
    Copy the full SHA
    6f65c1c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    10a4bf5 View commit details
    Browse the repository at this point in the history