Skip to content

Commit cae4c41

Browse files
committed
fix: wait for spdk_tgt process to terminate during pre-stop cleanup
Longhorn 13179 Signed-off-by: Derek Su <derek.su@suse.com> (cherry picked from commit 491e7e0)
1 parent 2f82f39 commit cae4c41

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

package/instance-manager-v2-prestop

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,26 @@ function cleanup_spdk_resources() {
2424
else
2525
log "Successfully sent SIGTERM to go-spdk-helper"
2626
fi
27+
28+
local grace_period=60
29+
local elapsed=0
30+
while [[ $elapsed -lt $grace_period ]]; do
31+
if ! pgrep -f "^spdk_tgt" > /dev/null 2>&1; then
32+
log "spdk_tgt process has stopped"
33+
return
34+
fi
35+
sleep 1
36+
elapsed=$((elapsed + 1))
37+
log "Waiting for spdk_tgt to stop... (${elapsed}/${grace_period}s)"
38+
done
39+
40+
log "spdk_tgt did not stop within ${grace_period}s grace period, sending SIGKILL..."
41+
pkill -KILL -f "^spdk_tgt"
42+
if [[ $? -eq 0 ]]; then
43+
log "Successfully sent SIGKILL to spdk_tgt"
44+
else
45+
log "Failed to send SIGKILL to spdk_tgt (process may have already exited)"
46+
fi
2747
}
2848

2949
function get_v2_devices() {

0 commit comments

Comments
 (0)