Skip to content

Commit 38d965b

Browse files
Copilotkristapsk
andcommitted
Fix trap to only disable service on success or no-op
- Remove unconditional trap that disabled service on any exit - Add sv down before each successful no-op exit - Add sv down after successful completion of growpart/resize2fs - Ensures service remains enabled if growth operations fail - Allows automatic retry on reboot when failures occur Co-authored-by: kristapsk <4500994+kristapsk@users.noreply.github.com>
1 parent d6cbfbf commit 38d965b

File tree

1 file changed

+9
-4
lines changed
  • files/etc/sv/grow-ssd

1 file changed

+9
-4
lines changed

files/etc/sv/grow-ssd/run

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33

44
set -eu
55

6-
# Always mark service down when we exit (success, no-op, or error)
7-
trap 'sv down /var/service/grow-ssd >/dev/null 2>&1 || true' 0
8-
96
# Wait for /ssd to be mounted (up to 60 seconds)
107
MAX_WAIT=60
118
WAITED=0
@@ -36,6 +33,7 @@ case "$SSD_DEV" in
3633
;;
3734
*)
3835
echo "grow-ssd: unable to detect source device for /ssd; skipping"
36+
sv down /var/service/grow-ssd >/dev/null 2>&1 || true
3937
exit 0
4038
;;
4139
esac
@@ -86,12 +84,16 @@ fi
8684
case "$PART" in
8785
''|*[!0-9]*)
8886
echo "grow-ssd: unable to determine partition number from $SSD_DEV or no partition; skipping"
87+
sv down /var/service/grow-ssd >/dev/null 2>&1 || true
8988
exit 0
9089
;;
9190
esac
9291

9392
# Only run if partition can be grown
94-
growpart --dry-run "$DISK" "$PART" >/dev/null 2>&1 || exit 0
93+
growpart --dry-run "$DISK" "$PART" >/dev/null 2>&1 || {
94+
sv down /var/service/grow-ssd >/dev/null 2>&1 || true
95+
exit 0
96+
}
9597

9698
echo "Growing partition $SSD_DEV"
9799
growpart "$DISK" "$PART"
@@ -100,3 +102,6 @@ echo "Resizing filesystem on $SSD_DEV"
100102
resize2fs "$SSD_DEV"
101103

102104
echo "grow-ssd completed"
105+
106+
# Disable the service after successful completion
107+
sv down /var/service/grow-ssd >/dev/null 2>&1 || true

0 commit comments

Comments
 (0)