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
compute: bound a stashed peek answer across the workers that produced it
`max_result_size` is a bound on the answer a client receives, and a
stashed answer escaped it. Each worker decides on its own whether its
share is large enough to stash, so an oversized result arrives as several
stashed responses each well under the ceiling, and the controller measured
only the rows a response carries inline. The batches were invisible to it,
which left the effective bound at the ceiling times the worker count.
Carry the size of the stashed rows in the response, measured the way an
inline answer measures its own, and accumulate that in the controller's
per-peek total. The encoded size the response already carried is what the
batches cost in blob storage, which is a different number and not the one
this bounds.
The gap was hidden by the adapter's per-chunk check on read-back, which
rejects a chunk larger than the ceiling and so happened to catch this at
the default read batch size. `max_result_size.slt` now covers the case
with that batch size lowered, so the chunk check cannot be what rejects
the result, and with a stash threshold low enough that every worker's
share reaches the stash. Without this change the query returns roughly
1.1 MiB under a 1 MiB cap.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments