mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
cli: fix decompression loop stalling (#191512)
Fixes #191501 It turns out this was a difference in inflate/deflate implementations between the extension/SDK and the CLI. The SDK uses Node's zlib bindings, while by default Rust's flate2 library uses a rust port of [miniz][1]. The 'logic' in the CLI was good, but miniz does not appear to flush decompressed data as nicely on SYNC'd boundaries as zlib does, which caused data to 'stall'. Telling the flate2 crate to use the native bindings fixed this. This could also be the cause of the flakiness occasionally seen on idle tunnel connections! [1]: https://github.com/richgel999/miniz
This commit is contained in:
parent
84e730a9a8
commit
db135a575a
12
cli/Cargo.lock
generated
12
cli/Cargo.lock
generated
|
@ -735,6 +735,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"libz-sys",
|
||||
"miniz_oxide",
|
||||
]
|
||||
|
||||
|
@ -1217,6 +1218,17 @@ version = "0.2.144"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
|
||||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"pkg-config",
|
||||
"vcpkg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "link-cplusplus"
|
||||
version = "1.0.9"
|
||||
|
|
|
@ -18,8 +18,8 @@ open = "4.1.0"
|
|||
reqwest = { version = "0.11.18", default-features = false, features = ["json", "stream", "native-tls"] }
|
||||
tokio = { version = "1.28.2", features = ["full"] }
|
||||
tokio-util = { version = "0.7.8", features = ["compat", "codec"] }
|
||||
flate2 = "1.0.26"
|
||||
zip = { version = "0.6.6", default-features = false, features = ["time", "deflate"] }
|
||||
flate2 = { version = "1.0.26", default-features = false, features = ["zlib"] }
|
||||
zip = { version = "0.6.6", default-features = false, features = ["time", "deflate-zlib"] }
|
||||
regex = "1.8.3"
|
||||
lazy_static = "1.4.0"
|
||||
sysinfo = { version = "0.29.0", default-features = false }
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue