The GitHub Actions job "Check newsfragment PR number" on 
airflow.git/refactor/go-sdk/coordinator-comms has succeeded.
Run started by GitHub user jason810496 (triggered by jason810496).

Head commit for run:
ae9e9b6be5ffac8064a0f2dded51f2d74016a85f / LIU ZHE YOU <[email protected]>
self-review: Address coordinator comms, client, and logger review findings

- Omit map_index from SetXCom for unmapped task instances and carry it
  as *int from api.TaskInstance through to SetXComMsg. Fixes a
  compile-time mismatch and matches the supervisor's "absent vs -1"
  semantics for unmapped tasks.

- Honor context cancellation in CoordinatorComm.Communicate by running
  the request send in a goroutine and selecting on ctx.Done(), so a
  blocked supervisor socket no longer wedges the caller. The underlying
  connection is left alone on cancel to avoid poisoning future writes
  with a stale deadline or leaving a partial length-prefixed frame on
  the wire.

- Decode ConnectionResult.Login and Password as *string via a new
  mapStringPtr helper so an explicitly empty credential round-trips
  through the coordinator client instead of being silently treated as
  absent. sdk.Connection already encodes the distinction.

Adds regression tests for each case.

go-sdk: drop unused details field from CoordinatorClient

CoordinatorClient stored a *StartupDetails it never read, and the
companion PRs (#67155, #67318) that also construct or pass details
into NewCoordinatorClient never read c.details either — they work
directly off the local *StartupDetails inside RunTask. Keeping the
field as API surface implies a contract the type does not honor,
so remove it and let callers pass only the comm channel.

go-sdk: unify ErrorResponse decoding in CoordinatorComm.Communicate

The dispatcher response could carry an error in two places — the
third element of a 3-tuple response frame, or as the body of a
2-tuple frame whose "type" is "ErrorResponse" — and Communicate
inspected each path independently. The two branches diverged on
nil-guarding decodeErrorResponse, which was easy-to-miss latent
inconsistency: either path could grow a bug the other did not.
Extract the source selection into errMapFromFrame so the decode
and *ApiError construction live in one place.

go-sdk: widen frame IDs to int64 end-to-end

CoordinatorComm's request-id counter was atomic.Int64 (chosen so a
long-running runtime cannot wrap), but the value was narrowed to
int when stored in the pending map and IncomingFrame.ID. On 32-bit
GOARCH that narrowing reintroduces the wraparound the int64 counter
was meant to prevent, and the comment promising "wide enough to
avoid wraparound" becomes architecture-dependent.

Widen IncomingFrame.ID, the pending map key, encodeRequest, and the
test fixtures to int64 so the no-wraparound guarantee holds on every
supported GOARCH. The change is package-internal; IncomingFrame has
no callers outside pkg/execution.

Report URL: https://github.com/apache/airflow/actions/runs/26502140504

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to