From a4a5fb23832b6b16bf057d24798f72eeadd22c8f Mon Sep 17 00:00:00 2001 From: alkatrazz Date: Thu, 14 May 2026 01:09:53 +0200 Subject: [PATCH] fix(funk-cluster): SIGKILL process fils hermes avant umount /srv/data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hermes-agent spawne des process Python qui survivent hors du cgroup systemd après stop_service. Ils gardent des file descriptors ouverts sur /srv/data (logs, state.db-shm) et bloquent le umount. Ajout d'un lsof + kill -9 sur tous les process tenant /srv/data avant sync + umount — garantit un démontage propre sans dépendre de systemd. Co-Authored-By: Claude Sonnet 4.6 --- ansible/roles/litellm/files/funk-cluster | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ansible/roles/litellm/files/funk-cluster b/ansible/roles/litellm/files/funk-cluster index e20978e..a0c418f 100644 --- a/ansible/roles/litellm/files/funk-cluster +++ b/ansible/roles/litellm/files/funk-cluster @@ -507,12 +507,22 @@ cmd_stop() { echo "" echo "[ storage-01 — démontage RAID5 /srv/data ]" stop_service nfs-server + + # Tuer les process fils qui survivent hors du cgroup systemd (ex: Python spawné par hermes) + local zombie_pids + zombie_pids=$(lsof /srv/data 2>/dev/null | awk 'NR>1 {print $2}' | sort -u) + if [ -n "$zombie_pids" ]; then + info "Process encore actifs sur /srv/data — SIGKILL..." + echo "$zombie_pids" | xargs kill -9 2>/dev/null || true + sleep 1 + fi + sync info "Flush buffers disque (sync)..." if umount /srv/data 2>/dev/null; then ok "/srv/data démonté proprement" else - warn "umount /srv/data échoué — processus encore actif :" + warn "umount /srv/data échoué malgré SIGKILL — processus restants :" lsof /srv/data 2>/dev/null | awk 'NR<=6' || true warn "Extinction quand même — systemd finalisera le démontage" fi