Skip to content

FR: exponential backoff for the "HTTP/3 is broken" cooldown #47

Description

@passcod

🤖 Fáith parks a failed HTTP/3 origin in the failed cache for a fixed upgradeFailedTtl (default 300s). Chrome instead marks QUIC broken with a doubling cooldown — 5 minutes, then 10, 20, 40… capped, and reset by any success. An origin whose UDP path is permanently blocked stops being re-tried every five minutes forever; one with a transient blip still recovers quickly.

This is a small change on top of the existing failed cache: keep a consecutive-failure count per origin, compute the TTL as failed_ttl << count (capped at, say, a day), clear the count on confirm_h3.

It pairs particularly well with the eager-probe design (#45): retries are already free of foreground cost there, so the only thing backoff saves is background probe traffic against origins that are never coming back — which is exactly what it's good at.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions