ReviewOS

home-lang/home

Port gRPC server deadlines and cancellation

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

Bun corpus source

  • js/third_party/grpc-js/test-server-deadlines.test.ts
  • sequential corpus position: 3992

Scope

  • parse grpc-timeout metadata and enforce unary deadlines
  • reject invalid deadline encodings with INTERNAL status diagnostics
  • propagate client streaming cancellation to server call events
  • retain cause and client/server operation frames on deadline and cancellation errors
  • add focused and permanent regression coverage

Tracking: #66

10 days ago

Implemented and published in 2add872e1 (feat(third-party): port gRPC server deadlines).

What landed:

  • complete grpc-timeout parsing for H/M/S/m/u/n units and eight-digit wire limits
  • TestService unary descriptors and makeUnaryRequest routing through the real server handler
  • deadline scheduling with late-handler completion suppression
  • invalid timeout failures with INTERNAL status, raw timeout value, preserved TypeError cause, and client/metadata source frames
  • client cancellation propagation to the server call's cancelled event
  • post-cancellation write suppression and Cancelled on client terminal details
  • shared status failures with preserved causes plus paired ClientCall and ServerCall operation frames
  • TypeScript lowering and permanent lifecycle diagnostics

Verification:

  • exact Bun file: 3 passed, 0 failed, 0 todo, 0 unsupported
  • positions 3990–3992: 29 passed, 0 failed, 0 todo, 0 unsupported
  • earlier affected positions 3970–3978: 55 passed, 1 upstream todo, 0 failed, 0 unsupported
  • permanent gRPC diagnostics: 19 passed
  • permanent SQL adapter and third-party mini-suite gates: passed
  • formatting and diff checks: passed

Sequential corpus ledger through position 3992: 334 executable files, 2,820 passed, 213 upstream todos, 0 failed, 0 unsupported, 171 intentionally allowed-empty files.

Tracking: #66

Sign in to comment on this issue.