Skip to content

Conversation

@github-actions
Copy link

If you tried to send a large XCom value, it would fail in the task/child
process side with this error:

RuntimeError: unable to read full response in child. (We read 36476, but expected 1310046)

(The exact number that was able to read dependent on any different factors,
like the OS, the current state of the socket and other things. Sometimes it
would read up to 256kb fine, othertimes only 35kb as here)

This is because the kernel level read-side socket buffer is full, so that was
as much as the Supervisor could send. The fix is to read in a loop until we
get it all.
(cherry picked from commit b9620bf)

Co-authored-by: Ash Berlin-Taylor ash@apache.org

…53186)

If you tried to send a large XCom value, it would fail in the task/child
process side with this error:

> RuntimeError: unable to read full response in child. (We read 36476, but expected 1310046)

(The exact number that was able to read dependent on any different factors,
like the OS, the current state of the socket and other things. Sometimes it
would read up to 256kb fine, othertimes only 35kb as here)

This is because the kernel level read-side socket buffer is full, so that was
as much as the Supervisor could send. The fix is to read in a loop until we
get it all.
(cherry picked from commit b9620bf)

Co-authored-by: Ash Berlin-Taylor <ash@apache.org>
@ashb ashb marked this pull request as ready for review July 11, 2025 15:13
@ashb ashb requested review from amoghrajesh and kaxil as code owners July 11, 2025 15:13
@kaxil kaxil merged commit b57ccf0 into v3-0-test Jul 11, 2025
50 checks passed
@kaxil kaxil deleted the backport-b9620bf-v3-0-test branch July 11, 2025 15:56
kaxil pushed a commit that referenced this pull request Jul 11, 2025
…53186) (#53194)

If you tried to send a large XCom value, it would fail in the task/child
process side with this error:

> RuntimeError: unable to read full response in child. (We read 36476, but expected 1310046)

(The exact number that was able to read dependent on any different factors,
like the OS, the current state of the socket and other things. Sometimes it
would read up to 256kb fine, othertimes only 35kb as here)

This is because the kernel level read-side socket buffer is full, so that was
as much as the Supervisor could send. The fix is to read in a loop until we
get it all.
(cherry picked from commit b9620bf)

Co-authored-by: Ash Berlin-Taylor <ash@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants