From a24e9053d171854d09e9fc73adf1bf76fcdead0c Mon Sep 17 00:00:00 2001 From: rcourtman Date: Wed, 19 Nov 2025 11:02:14 +0000 Subject: [PATCH] fix(sensor-proxy): ensure migrate script atomic write is same-filesystem Create temp file in same directory as config.yaml to ensure mv is truly atomic (won't degrade to copy+unlink on different filesystems). Added comments noting this is a legacy migration script with minor race risk (no file locking) that should be deprecated once all users upgrade to v4.32+. --- scripts/migrate-sensor-proxy-control-plane.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/migrate-sensor-proxy-control-plane.sh b/scripts/migrate-sensor-proxy-control-plane.sh index 4c70bd9..7fffe07 100644 --- a/scripts/migrate-sensor-proxy-control-plane.sh +++ b/scripts/migrate-sensor-proxy-control-plane.sh @@ -94,8 +94,15 @@ chown pulse-sensor-proxy:pulse-sensor-proxy "$TOKEN_FILE" update_config_atomically() { # Phase 2: Use atomic write to prevent corruption + # NOTE: This script is for one-time migration from v4.31 to v4.32+ + # It uses atomic write but doesn't use config.yaml.lock (minor race risk) + # Future: Deprecate this script once all users are on v4.32+ + + # Create temp file in same directory to ensure rename is atomic + local config_dir + config_dir=$(dirname "$CONFIG_FILE") local temp_file - temp_file=$(mktemp) + temp_file=$(mktemp "$config_dir/.config.XXXXXX") # Remove old control plane blocks and add new one atomically python3 - "$CONFIG_FILE" "$temp_file" <<'PY'