KamoCRM

Evitaţi tranzacţiile care otrăvesc DDL şi Harden multi-pod curse

FixSecurityService
Shipped
20 aprilie 2026 la 20:43 UTC
Author
Kamo
Commit
d3249b4

Precedentul auto-vindecare pune DDL într-o sincronizare @TransactionalAll(). Atunci când un ALTER TABELUL ADD CONTRAINT tras asupra unei constrângeri existente (caz normal după prima boot, sau pod pierdut într-o cursă multi-pod), runIdempotent înghiţit Java Excepție Fiecare apel JPA ulterioare apoi a lovit tranzacţia curentă este anulată, comenzi ignorate până la sfârșitul blocului de tranzacții ,", luând pod în jos pe fiecare repornire. Modificări: - Sincronizarea: Fiecare fază se desfășoară cu propria sa autonomie: DDL auto-commite pe declarație în afara oricărui TX de primăvară, astfel încât Un singur eşec nu poate otrăvi nimic. - să asigure că UniqueConstraint() verifică acum pg constraint înainte de a încerca ADD, Deci eroarea "există deja" nu se aprinde niciodată la reporniri normale. - Auto-injectare (@Lazy sine) astfel încât sub-metodele " @Transactional de fapt incendii prin proxy de primăvară (precedentul acest lucru.sincOrgRoleRights() apel bypassed AOP). - Documentat analiza rasei simultane: DDL serializat de CRDB, DELETE idepotent, introduce rasa-sigur prin intermediul CONFLICT nu face nimic.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing