fix: chunk bodies and process partial #252
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
bodySize
received by body callbacks is not the size of the chunk, but rather of the whole body that has been buffered up to that point in time (For more context: tetratelabs/proxy-wasm-go-sdk#418). This divergent usage ofbodySize
is the origin of the misbehaviour we were dealing with here: the body callback might be called more than once with the same bodySize. Trying to read more data from the buffer leads to theerror status returned by host: not found
error.With this PR, the overall management of the body callbacks looks way better. Before and after verbose logs receiving a big payload highlight the differences:
Before:
After:
Waiting for further discussion SDK side tetratelabs/proxy-wasm-go-sdk#418, before updating the dependency and removing the draft status.