ReviewOS

home-lang/home

Port gRPC retry and hedging execution

#248
Closed chris opened this 10 days ago ·
10 days ago

Bun corpus source

  • js/third_party/grpc-js/test-retry.test.ts
  • sequential corpus position: 3990

Scope

  • execute configured unary retry and hedging attempts
  • propagate grpc-previous-rpc-attempts metadata without mutating caller metadata
  • honor retryable/non-fatal status sets, fatal statuses, backoff, and configured attempt caps
  • honor grpc.enable_retries and grpc-node.retry_max_attempts_limit
  • preserve terminal causes with target/attempt/mode operation-stack context
  • add focused and permanent regression coverage

Tracking: #66

10 days ago

Implemented and published in f18d40cd6 (feat(third-party): port gRPC retry execution).

What landed:

  • executable unary retry and hedging attempt orchestration
  • isolated per-attempt metadata with grpc-previous-rpc-attempts propagation
  • retryable/non-fatal status matching for the complete gRPC status-code set
  • fatal-status termination, exponential capped backoff, and hedging delay scheduling
  • default five-attempt cap plus grpc-node.retry_max_attempts_limit override
  • grpc.enable_retries handling and method/service policy selection
  • normalized terminal failures with status/details, target, zero-based attempt, attempt budget, mode, preserved cause, and RetryCall.attempt operation/source stack frames
  • permanent end-to-end coverage proving caller metadata remains unmodified

Verification:

  • exact Bun file: 15 passed, 0 failed, 0 todo, 0 unsupported
  • affected gRPC positions 3985–3990: 113 passed, 4 upstream todos, 0 failed, 0 unsupported
  • permanent gRPC diagnostics: 17 passed
  • permanent SQL adapter and third-party mini-suite gates: passed
  • zig fmt --check packages/home_test/src/corpus_runner.zig: passed
  • git diff --check: passed

Sequential corpus ledger through position 3990: 332 executable files, 2,806 passed, 213 upstream todos, 0 failed, 0 unsupported, 171 intentionally allowed-empty files.

Tracking: #66

Sign in to comment on this issue.