- Shipped
- 20 avril 2026 à 20:43 UTC
- Author
- Kamo
- Commit
- d3249b4
L'auto-guérison précédent a mis DDL à l'intérieur d'un "Transactional syncAll(). Quand un ALTER TABLE AJOUTER CONSTRAINT tiré sur une contrainte existante (cas normal après premier boot, ou la nacelle perdant dans une course multi-pod), runIdempotent a avalé le Java l'exception - mais la transaction DB environnante a été laissée dans un état avorté. Chaque appel JPA suivant puis touchez la transaction en cours est avortée, les commandes ignorée jusqu'à la fin de la transaction, en prenant la dose en position basse sur chaque redémarrage. Changements: - syncAll() n'est plus « transactionnel. Chaque phase s'étend avec sa propre autonomie: DDL auto-commit par déclaration en dehors de n'importe quel TX de printemps, donc a L'échec à l'état unique ne peut rien empoisonner. - assurerUniqueConstraint() vérifie maintenant la contrainte avant de tenter un DJT, Ainsi, l'erreur "déjà existe" ne s'enflamme jamais sur les redémarrages normaux. - Auto-injection (souheur paresseux) de sorte que les sous-méthodes "Transactionnel en fait" incendies par l'intermédiaire du proxy de printemps (le précédent appel.syncOrgRoleRights() l'AOP contourné). Documenté l'analyse de la race par cadavre concurrente: DDL sérialisée par la CRDB, DÉLÉTÉS idémpotent, enlève la sécurité raciale via CONFLITS NE RIEN.