refactor(tvix/store): drop FUSE multithread workaround for Darwin

The underlying issue in macFUSE has been fixed in
https://github.com/osxfuse/osxfuse/issues/974.

Bump our `macfuse` in nixpkgs to a version containing the fix.

This can be removed while our nixpkgs pin is bumped past
https://github.com/NixOS/nixpkgs/pull/320197.

Change-Id: Ia0e644fb13198e45018b0a218647ef211acf4df1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11824
Tested-by: BuildkiteCI
Reviewed-by: Brian Olsen <me@griff.name>
This commit is contained in:
Florian Klink 2024-06-16 10:43:08 +03:00 committed by flokli
parent 7e42b4f314
commit 4be250109c
3 changed files with 27 additions and 8 deletions

View file

@ -120,4 +120,17 @@ depot.nix.readTree.drvTargets {
tpm2-pkcs11 = super.tpm2-pkcs11.overrideAttrs (old: { tpm2-pkcs11 = super.tpm2-pkcs11.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [ ./patches/tpm2-pkcs11-190-dbupgrade.patch ]; patches = (old.patches or [ ]) ++ [ ./patches/tpm2-pkcs11-190-dbupgrade.patch ];
}); });
# macFUSE bump containing fix for https://github.com/osxfuse/osxfuse/issues/974
# https://github.com/NixOS/nixpkgs/pull/320197
fuse =
if super.stdenv.isDarwin then
super.fuse.overrideAttrs
(old: rec {
version = "4.8.0";
src = super.fetchurl {
url = "https://github.com/osxfuse/osxfuse/releases/download/macfuse-${version}/macfuse-${version}.dmg";
hash = "sha256-ucTzO2qdN4QkowMVvC3+4pjEVjbwMsB0xFk+bvQxwtQ=";
};
}) else super.fuse;
} }

View file

@ -16,6 +16,19 @@
./nixpkgs/cbtemulator-uds.patch ./nixpkgs/cbtemulator-uds.patch
]; ];
}); });
# macFUSE bump containing fix for https://github.com/osxfuse/osxfuse/issues/974
# https://github.com/NixOS/nixpkgs/pull/320197
fuse =
if super.stdenv.isDarwin then
super.fuse.overrideAttrs
(old: rec {
version = "4.8.0";
src = super.fetchurl {
url = "https://github.com/osxfuse/osxfuse/releases/download/macfuse-${version}/macfuse-${version}.dmg";
hash = "sha256-ucTzO2qdN4QkowMVvC3+4pjEVjbwMsB0xFk+bvQxwtQ=";
};
}) else super.fuse;
}) })
]; ];
}) })

View file

@ -185,19 +185,12 @@ enum Commands {
}, },
} }
#[cfg(all(feature = "fuse", not(target_os = "macos")))] #[cfg(feature = "fuse")]
fn default_threads() -> usize { fn default_threads() -> usize {
std::thread::available_parallelism() std::thread::available_parallelism()
.map(|threads| threads.into()) .map(|threads| threads.into())
.unwrap_or(4) .unwrap_or(4)
} }
// On MacFUSE only a single channel will receive ENODEV when the file system is
// unmounted and so all the other channels will block forever.
// See https://github.com/osxfuse/osxfuse/issues/974
#[cfg(all(feature = "fuse", target_os = "macos"))]
fn default_threads() -> usize {
1
}
#[instrument(fields(indicatif.pb_show=1), skip(cli))] #[instrument(fields(indicatif.pb_show=1), skip(cli))]
async fn run_cli(cli: Cli) -> Result<(), Box<dyn std::error::Error>> { async fn run_cli(cli: Cli) -> Result<(), Box<dyn std::error::Error>> {