Skip to content

Commit a2f6ed2

Browse files
David Tolnayfacebook-github-bot
authored andcommitted
Bytestream decompression with async-compression requires multiple_members(true)
Summary: This fixes the truncated materializations when using Remote Execution with BuildBuddy described in <facebook#1103 (comment)>. The fix was discovered by cormacrelf and NobodyXu in <Nullus157/async-compression#400>. Differential Revision: D88011967
1 parent 248ba59 commit a2f6ed2

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

remote_execution/oss/re_grpc/src/client.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,9 +1315,21 @@ where
13151315
// Wrap the blob reader in a compression reader
13161316
let reader: Pin<Box<dyn AsyncRead + Unpin + Send>> = match bystream_compressor {
13171317
None => Pin::new(Box::new(blob_reader)),
1318-
Some(Compressor::Zstd) => Pin::new(Box::new(ZstdDecoder::new(blob_reader))),
1319-
Some(Compressor::Deflate) => Pin::new(Box::new(DeflateDecoder::new(blob_reader))),
1320-
Some(Compressor::Brotli) => Pin::new(Box::new(BrotliDecoder::new(blob_reader))),
1318+
Some(Compressor::Zstd) => {
1319+
let mut decoder = ZstdDecoder::new(blob_reader);
1320+
decoder.multiple_members(true);
1321+
Pin::new(Box::new(decoder))
1322+
}
1323+
Some(Compressor::Deflate) => {
1324+
let mut decoder = DeflateDecoder::new(blob_reader);
1325+
decoder.multiple_members(true);
1326+
Pin::new(Box::new(decoder))
1327+
}
1328+
Some(Compressor::Brotli) => {
1329+
let mut decoder = BrotliDecoder::new(blob_reader);
1330+
decoder.multiple_members(true);
1331+
Pin::new(Box::new(decoder))
1332+
}
13211333
};
13221334

13231335
reader

0 commit comments

Comments
 (0)