diff --git a/tools/cargo-mutants.sh b/tools/cargo-mutants.sh index cc1d19a..f95d5c6 100644 --- a/tools/cargo-mutants.sh +++ b/tools/cargo-mutants.sh @@ -135,11 +135,13 @@ if [ "$1" = --host ]; then trap cleanup EXIT; trap 'exit 143' TERM INT HUP killed() { [ -n "${YGG_KILLED:-}" ] && [ -e "$YGG_KILLED" ]; } now() { date +%s; } + # The shared volume is CARGO_HOME itself so sibling containers share cargo's package-cache lock; a registry-only mount left + # the lock in each container's layer and concurrent unpacks removed each other's crate directories (2026-11-03). # Every container carries the job label (the stopgap's watchdog kills by it) and the same caps. common=(--label "$YGG_LABEL" "--cpus=${YGG_CPUS:-4}" "--memory=${YGG_MEM:-6g}" -v "$YGG_WORK:/seed:ro" -v "$D:/cm:ro" -v /etc/machine-id:/etc/machine-id:ro - -v eureka-cargo-registry:/usr/local/cargo/registry -v eureka-nuget:/root/.nuget/packages -v eureka-sccache:/sccache - -e BASH_ENV=/tmp/.ygg-bash-env + -v eureka-cargo-home:/cargo-home -v eureka-nuget:/root/.nuget/packages -v eureka-sccache:/sccache + -e BASH_ENV=/tmp/.ygg-bash-env -e CARGO_HOME=/cargo-home -e "WORKDIR=${WORKDIR:-.}" -e "BASE=$BASE" -e "TEST_ARGS=${TEST_ARGS:-}" -e "FILTERS=${FILTERS:-}" -e "CM_NAMES=${CM_NAMES:-}" -e "JOBS=$JOBS" -e "MIN_TEST_TIMEOUT=$MIN_TEST_TIMEOUT" -e "CONFIRM_TIMEOUT_MULT=$CONFIRM_TIMEOUT_MULT" -e GIT_CONFIG_COUNT=1 -e GIT_CONFIG_KEY_0=safe.directory -e 'GIT_CONFIG_VALUE_0=*') @@ -208,7 +210,7 @@ if [ "$1" = --host ]; then container_error() { # container_error