keycloak : rendre patiente l'ecriture qui suit la synchronisation LDAP

Quatrieme arret de la reconstruction from-zero, et le premier qui ne soit pas
un defaut d'ordre mais une COURSE.

  ModelException: Database operation failed
  Caused by: PSQLException: This statement has been closed
  TransactionReaper::doCancellations ... ActionStatus.ABORTED

L'ecriture des actions requises arrive juste apres la synchronisation complete
de la federation ; sur un realm neuf, la synchro tient encore des transactions
et le collecteur annule le PUT. Rejouee seule deux minutes plus tard, la meme
ecriture passe en 76 ms — et le groupe entier repasse avec failed=0.

retries/until plutot qu'un delai fixe : on attend une condition, pas une
duree. Un echec transitoire n'a pas a faire tomber un deploiement d'une heure.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-08-08 22:17:26 -04:00
parent 8b0eaaec0a
commit 059953e621

View file

@ -193,6 +193,18 @@
register: serveur_keycloak_req_action
changed_when: "'SETOPS_CHANGED' in serveur_keycloak_req_action.stdout"
no_log: true
# PATIENTE, parce que cette ecriture arrive JUSTE APRES la synchronisation complete de
# la federation LDAP. Sur un realm neuf, la synchro tient encore des transactions quand
# le PUT arrive, et le collecteur de transactions de Keycloak l'annule :
# ModelException: Database operation failed
# Caused by: PSQLException: This statement has been closed
# TransactionReaper::doCancellations ... status: ActionStatus.ABORTED
# Constate le 2026-08-08 pendant la premiere reconstruction from-zero. Rejoue seule
# deux minutes plus tard, la meme ecriture passe en 76 ms — c'est une COURSE, pas une
# panne. Un echec transitoire n'a pas a faire tomber un deploiement d'une heure.
retries: 4
delay: 15
until: serveur_keycloak_req_action is succeeded
when:
- serveur_keycloak_amorcage_uid | length > 0
- "'pwdReset: TRUE' in (serveur_keycloak_pwdreset.stdout | default(''))"