You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Java task's return value cannot currently feed a downstream .expand(). The Python task runner does this in _push_xcom_if_needed, but a foreign runtime cannot inspect the Dag to learn that its output has mapped dependants.
#70571 introduces the server-derived TIRunContext.has_mapped_dependants flag (computed from iter_mapped_dependants); when set, the supervisor records mapped_length = len(value) on the return-value SetXCom on the task's behalf, so the scheduler can expand the dependants.
What needs to happen
Confirm whether the supervisor-side recording from Bind mapped stub-task arguments in the Go SDK runtime #70571 is language-agnostic. If it is, this issue reduces to Java-side verification plus tests; if any of it is Go-specific, lift it into the shared coordinator/supervisor path.
Ensure the Java SDK surfaces has_mapped_dependants on its context object where it is useful to task authors.
Cover the flow end to end: a Java @task.stub returning a list, with a downstream Python .expand() over it.
Acceptance criteria
A Java stub task whose return value feeds a downstream .expand() causes those dependants to expand to len(value) instances.
A Java task with no mapped dependants records no mapped_length (no behaviour change).
The version gate is respected: pre-arg-bindings clients skip the derivation entirely.
Background
A Java task's return value cannot currently feed a downstream
.expand(). The Python task runner does this in_push_xcom_if_needed, but a foreign runtime cannot inspect the Dag to learn that its output has mapped dependants.#70571 introduces the server-derived
TIRunContext.has_mapped_dependantsflag (computed fromiter_mapped_dependants); when set, the supervisor recordsmapped_length = len(value)on the return-valueSetXComon the task's behalf, so the scheduler can expand the dependants.What needs to happen
has_mapped_dependantson its context object where it is useful to task authors.@task.stubreturning a list, with a downstream Python.expand()over it.Acceptance criteria
.expand()causes those dependants to expand tolen(value)instances.mapped_length(no behaviour change).Context
_push_xcom_if_neededin the task-SDK task runner