Evite el envenenamiento de transacciones DDL y endurece las carreras multipodárselas

FixSecurityService
Shipped
20 de abril de 2026 a las 20:43 UTC
Author
Kamo
Commit
d3249b4

La auto-curación anterior puso DDL dentro de una sincronización transaccional All). Cuando un ALTER CUADRO ADD CONSTRAINT disparó contra una limitación existente (caso normal después del primer año) bota, o la cápsula perdedora en una carrera multipodádvieta), runIdempotent se tragó el Java excepción, pero la transacción de DB circundante se dejó en un estado abortado. Cada llamada JPA posterior entonces golpear la transacción actual es abortada, comandos ignorado hasta el final del bloque de transacciones, bajando la cápsula en cada reinicio. Cambios: - sincronizarAll (Sí) ya no es "Transactional". Cada fase se ejecuta con su propia autonomía: auto-comenamientos DDL por declaración fuera de cualquier Spring TX, así que a El fracaso de una sola declaración no puede envenenar nada. - asegurarUniqueConstraint () comprueba ahora la pg-constraint antes de intentar el TDA, Así que el error "ya existe" nunca se dispara en los reinicios normales. - Autoinyección (auto perezoso) por lo que los sub-métodos' "Transactional" en realidad incendios a través del proxy de la primavera (el anterior.syncOrgRoleRights () llaman eludido AOP). - Documentado el análisis de la raza concurrente: DDL serializado por CRDB, DELETEs idempotente, inserta carreras seguras a través de EN CONFLICT DO NOTHING.

All changes

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios