Éviter les intoxications à la DDL et durcir les courses multi-pod

FixSecurityService
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.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation