robobun
0351bd5f28
Fix zstd decompression truncation for multi-frame responses ( #22680 )
...
## Summary
Fixes #20053
When a server sends zstd-compressed data with chunked transfer encoding,
each chunk may be compressed as a separate zstd frame. Previously, Bun's
zstd decompressor would stop after the first frame, causing responses to
be truncated at 16KB.
## The Fix
The fix modifies the zstd decompressor (`src/deps/zstd.zig`) to continue
decompression when a frame completes but input data remains. When
`ZSTD_decompressStream` returns 0 (frame complete), we now check if
there's more input data and reinitialize the decompressor to handle the
next frame.
## Testing
Added regression tests in `test/regression/issue/20053.test.ts` that:
1. Test multi-frame zstd decompression where two frames need to be
concatenated
2. Simulate the exact Hono + compression middleware scenario from the
original issue
Both tests fail without the fix (truncating at 16KB) and pass with the
fix.
## Verification
```bash
# Without fix (regular bun):
$ bun test test/regression/issue/20053.test.ts
0 pass
2 fail
# With fix (debug build):
$ bun bd test test/regression/issue/20053.test.ts
2 pass
0 fail
```
🤖 Generated with [Claude Code](https://claude.ai/code )
---------
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 14:24:03 -07:00
..
2025-09-09 20:41:10 -07:00
2025-07-22 17:51:38 -07:00
2025-09-01 02:35:55 -07:00
2025-09-09 23:29:39 -07:00
2025-08-11 20:19:34 -07:00
2025-09-11 17:53:06 -07:00
2025-07-22 17:51:38 -07:00
2025-09-14 04:14:48 -07:00
2025-09-14 01:01:22 -07:00
2025-09-14 04:14:48 -07:00
2025-09-13 14:52:19 -07:00
2025-09-09 20:41:10 -07:00
2025-09-14 04:14:48 -07:00
2025-09-12 23:44:10 -07:00
2025-09-15 14:24:03 -07:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-08-28 17:34:35 -07:00
2025-09-14 04:14:48 -07:00
2025-07-17 03:13:48 -07:00
2025-09-12 23:44:48 -07:00
2025-09-14 02:27:53 -07:00
2025-09-09 20:41:10 -07:00
2025-09-13 14:52:19 -07:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-09-07 17:53:00 -07:00
2025-07-31 22:07:17 -07:00
2025-08-11 20:19:34 -07:00
2025-09-09 20:41:10 -07:00
2025-09-01 02:35:55 -07:00
2025-09-09 20:41:10 -07:00
2025-09-09 20:41:10 -07:00
2025-07-23 17:10:58 -07:00
2025-09-14 04:14:48 -07:00
2025-09-09 20:41:10 -07:00
2025-09-13 14:52:19 -07:00
2025-09-09 23:31:07 -07:00
2025-08-26 12:50:25 -07:00
2025-07-21 13:26:47 -07:00
2025-09-03 15:40:44 -07:00
2025-09-11 17:50:18 -07:00
2025-06-04 19:41:26 -07:00
2025-08-11 20:19:34 -07:00
2024-10-08 23:04:05 -07:00
2025-09-03 15:40:44 -07:00
2025-08-23 06:55:30 -07:00
2025-05-14 18:42:42 -07:00
2025-07-29 19:35:46 -07:00
2025-07-22 17:51:38 -07:00
2025-07-22 17:51:38 -07:00
2025-08-26 12:50:25 -07:00
2025-04-17 14:17:08 -07:00
2025-07-22 17:51:38 -07:00
2025-09-03 18:57:39 -07:00
2025-07-22 17:51:38 -07:00
2025-07-20 23:04:17 -07:00
2025-09-14 04:14:48 -07:00
2025-09-09 20:41:10 -07:00
2025-08-26 12:50:25 -07:00
2025-06-12 14:20:28 -07:00
2025-08-11 20:19:34 -07:00
2025-07-21 13:26:47 -07:00
2025-09-09 23:29:39 -07:00
2025-09-13 16:15:03 -07:00
2025-09-03 18:57:39 -07:00
2025-07-31 00:56:50 -07:00
2025-08-11 20:19:34 -07:00
2025-09-04 18:14:47 -07:00
2025-07-22 17:51:38 -07:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-08-07 15:16:44 -07:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-07-28 00:13:17 -07:00
2025-08-22 23:04:58 -07:00
2025-05-08 23:22:16 -07:00
2025-05-08 23:22:16 -07:00
2025-08-14 18:03:26 -07:00
2025-08-27 06:39:11 -07:00
2025-05-08 23:22:16 -07:00
2024-12-10 12:43:17 -08:00
2025-08-21 15:28:15 -07:00
2025-08-30 02:50:35 -07:00
2025-08-23 06:55:30 -07:00
2025-06-03 23:51:03 -07:00
2025-09-11 19:24:43 -07:00
2025-08-26 12:50:25 -07:00
2025-09-03 15:40:44 -07:00
2025-07-22 17:51:38 -07:00
2025-07-22 17:51:38 -07:00
2025-09-09 20:41:10 -07:00
2025-09-04 18:06:47 -07:00
2025-07-09 00:19:57 -07:00
2025-07-22 17:51:38 -07:00
2025-07-22 17:51:38 -07:00
2025-08-23 06:55:30 -07:00
2025-07-22 17:51:38 -07:00
2025-08-26 12:50:25 -07:00
2025-08-25 17:37:12 -07:00
2025-09-09 20:41:10 -07:00
2024-12-10 12:43:17 -08:00
2025-09-11 23:29:53 -07:00
2025-03-26 23:57:10 -07:00
2025-09-09 20:41:10 -07:00
2025-07-22 17:51:38 -07:00
2025-08-14 21:12:22 -07:00
2025-02-18 10:38:37 -08:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-08-26 12:50:25 -07:00
2025-07-22 17:51:38 -07:00
2025-09-03 15:40:44 -07:00
2025-09-03 15:40:44 -07:00
2025-07-22 17:51:38 -07:00
2025-09-14 04:14:48 -07:00
2025-09-09 23:29:39 -07:00
2025-09-09 21:42:01 -07:00
2025-07-22 17:51:38 -07:00
2025-09-12 23:59:24 -07:00
2025-07-21 13:26:47 -07:00
2025-07-21 13:26:47 -07:00
2025-07-21 13:26:47 -07:00
2025-09-09 20:41:10 -07:00
2025-07-21 13:26:47 -07:00
2025-09-03 15:40:44 -07:00
2025-07-22 17:51:38 -07:00
2025-08-26 12:50:25 -07:00
2025-06-22 20:51:45 -07:00
2025-09-09 23:29:39 -07:00
2025-09-03 15:40:44 -07:00
2025-02-02 00:20:45 -08:00
2025-07-21 13:26:47 -07:00
2025-09-04 18:17:14 -07:00
2025-07-21 13:26:47 -07:00
2025-08-31 18:27:51 -07:00
2025-07-13 04:27:43 -07:00
2025-07-13 04:27:43 -07:00
2025-07-13 04:27:43 -07:00
2025-07-25 12:38:06 -07:00
2025-09-04 18:17:14 -07:00
2025-07-21 13:26:47 -07:00
2025-09-03 15:40:44 -07:00
2025-07-25 12:38:06 -07:00
2025-07-21 13:26:47 -07:00
2025-02-01 01:11:02 -08:00
2025-09-09 20:41:10 -07:00
2025-05-08 23:22:16 -07:00
2025-07-21 13:26:47 -07:00
2025-08-11 20:19:34 -07:00
2025-07-21 13:26:47 -07:00
2025-08-26 12:50:25 -07:00
2025-08-26 12:50:25 -07:00
2025-07-22 17:51:38 -07:00
2025-08-11 20:19:34 -07:00
2025-07-20 23:04:17 -07:00
2025-08-23 06:55:30 -07:00
2025-07-21 13:26:47 -07:00
2025-07-22 17:51:38 -07:00
2025-07-21 13:26:47 -07:00
2025-09-03 18:57:39 -07:00