Eason09053360 opened a new pull request, #75601:
URL: https://github.com/apache/airflow/pull/75601

   ### Why
   
   The supervisor drops a `SetXCom` whose value is not JSON without replying, 
so a Go task that returns a `time.Time`, `uuid.UUID` or `[]byte` hangs until 
`execution_timeout`, or forever when none is set. The task state store already 
rejects such values before sending them; XCom pushes did not.
   
   ### What
   
   - `PushXCom` runs the same `validateJSONRepresentable` check first, so the 
task fails with the reason instead. `nil` still pushes as null, so the nil rule 
moved into `TaskStateStore.Set`.
   - That check's map decoder panicked on a key that decodes to bytes, such as 
`uuid.UUID`; it now returns an error. 
`TestCoordinatorClientPushXComRejectsNonJSONValues` covers both.
   - Client-side push cost: +1 µs for a small map, 2.5 → 5.6 ms for a 100k-int 
list (supervisor, HTTP and DB not included).
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Opus 5.5)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to