Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Arret

[server]
shutdown_grace_period_secs = 30   # attente du travail en cours, toutes portes
docker stop -t 90 craft-file-gate                  # Docker
# Kubernetes : terminationGracePeriodSeconds: 90

Les etapes

SIGTERM ou SIGINT (Ctrl-C) declenchent l’arret, le serveur fut-il PID 1.

EtapeCe qui se passeBorne
1la porte SFTP n’accepte plus ; /readyz repond 503 ; plus aucune verification de mot de passe admise-
2les listes de bans ([sftp.ban], [api.ban], [admin.ban]) sont ecrites dans leur persist_file5 s par liste
3server shutting down envoye a toutes les sessions SFTP ; la porte admin/API n’accepte plus et ferme ses flux-
4les sessions sans transfert en cours sont coupees-
5attente des transferts en cours, s’il y en a ; finit avec le derniershutdown_grace_period_secs
6toute session encore la est coupee-
7attente de la fin des sessions coupees (spans, dernieres lignes d’audit)reste du delai
8attente des requetes REST et admin en coursreste du delai
9uploads multipart S3 encore ouverts annules5 s
10nettoyages de quota et retraits des verrous d’upload5 s
11dernier envoi OTLP (metriques, spans)5 s
12graceful shutdown complete, sortie 0-

Les etapes 5, 7 et 8 partagent un seul delai, compte depuis l’annonce. Sans transfert en cours, l’arret ne l’attend pas.

Regler l’orchestrateur

Le pire cas d’un arret :

ComposanteDefaut
shutdown_grace_period_secs30 s
ecriture des bans5 s par liste ([sftp.ban], [api.ban], [admin.ban])
travaux des backends5 s
nettoyages et verrous5 s
envoi OTLP5 s
total50 s avec une liste de bans, 60 s avec les trois

Le delai d’arret de l’orchestrateur doit le depasser : docker stop -t 90, terminationGracePeriodSeconds: 90, que le chart pose (delai de grace plus 60 s). Un SIGKILL avant la fin coupe les transferts sans ligne d’audit, laisse les multipart S3 ouverts et perd les spans non exportes.

Ce que vous verrez

Chaque etape ecrit sa ligne INFO : shutdown signal received, ban files written out before the shutdown sequence, idle sessions disconnected (idle_kicked), waiting for active transfers to complete (seulement s’il y en a), remaining sessions disconnected (force_kicked, 0 compris), graceful shutdown complete. Les sessions coupees finissent en session_end reason=shutdown_idle (etape 4) ou shutdown (etape 6).