From 3dbf54decb8c368e9568743271cf5fe0eacb4d9f Mon Sep 17 00:00:00 2001 From: Jacek Galowicz Date: Mon, 29 Jan 2024 06:27:30 +0100 Subject: [PATCH] nixos-rebuild: Fix "too long for Unix domain socket" errors due to long TMPDIR --- pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh index bde6ff9d959b..2051368a49f6 100755 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh +++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh @@ -407,6 +407,13 @@ fi tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX) +if [[ ${#tmpDir} -ge 60 ]]; then + # Very long tmp dirs lead to "too long for Unix domain socket" + # SSH ControlPath errors. Especially macOS sets long TMPDIR paths. + rmdir "$tmpDir" + tmpDir=$(TMPDIR= mktemp -t -d nixos-rebuild.XXXXXX) +fi + cleanup() { for ctrl in "$tmpDir"/ssh-*; do ssh -o ControlPath="$ctrl" -O exit dummyhost 2>/dev/null || true