diff --git a/nexus/src/app/background/tasks/support_bundle_collector.rs b/nexus/src/app/background/tasks/support_bundle_collector.rs index 4ef4d9737c..b9439fcc2e 100644 --- a/nexus/src/app/background/tasks/support_bundle_collector.rs +++ b/nexus/src/app/background/tasks/support_bundle_collector.rs @@ -1162,7 +1162,9 @@ fn recursively_add_directory_to_zipfile( let file_type = entry.file_type()?; if file_type.is_file() { - let opts = FullFileOptions::default(); + let opts = FullFileOptions::default() + .compression_method(zip::CompressionMethod::Deflated) + .large_file(true); let src = entry.path(); zip.start_file_from_path(dst, opts)?; diff --git a/sled-diagnostics/src/logs.rs b/sled-diagnostics/src/logs.rs index daa6b00b28..9970e0433b 100644 --- a/sled-diagnostics/src/logs.rs +++ b/sled-diagnostics/src/logs.rs @@ -720,7 +720,13 @@ fn write_log_to_zip( zip_path, FullFileOptions::default() .compression_method(zip::CompressionMethod::Zstd) - .compression_level(Some(3)), + .compression_level(Some(3)) + // NB: From the docs + // If set to false and the file exceeds the + // limit, an I/O error is thrown and the file is aborted. If set to + // true, readers will require ZIP64 support and if the file does not + // exceed the limit, 20 B are wasted. + .large_file(true), )?; if let Err(e) = std::io::copy(&mut src, zip) { // If we fail here the `ZipWriter` is an unknown state and we are forced